【发布时间】:2012-07-16 17:31:11
【问题描述】:
我有DialogFragment 和Loader。
对话框提示用户从应用程序中注销。
当用户选择注销时,我会触发Loader,它会清除首选项和数据库,然后我会完成当前的Activity。
Loader 完成后,我想用登录屏幕创建一个新的Activity,但遇到两个问题:
-
getActivity()方法返回null - 我无法运行新的
Activity,因为我已经用完了Activitycontext
您对此有什么解决方案吗?
【问题讨论】:
-
因此,在
onLoadFinished中,您调用startActivity获取“登录”Activity和finish获取当前FragmentActivity持有您的Fragment(s)。对吗? -
我觉得你的问题是通过调用完成。我相信这样做会破坏您的活动参考。这使得 getActivity() 返回 null。也许您可以转向更受事件驱动的样式,并在用户选择注销后生成广播意图。然后在您的登录屏幕活动中设置一个接收器来唤醒自己。
-
@RyanGray 即使我没有调用完成对
Activity的引用是null。
标签: android android-fragments android-activity android-loadermanager android-loader