Android Fragment - getActivity()。runOnUiThread在重启app时返回null

时间:2015-12-02 09:35:06

标签: android android-activity android-fragmentactivity

当我第一次启动应用程序时,下面的代码运行正常。但是当离开应用程序并再次打开它时,我收到错误getActivity() returns null.

我在片段中执行此代码:

(getActivity()).runOnUiThread(new Runnable() {
            @Override
            public void run() {
                    enableMenu();
                    openMenu();
                    navigateToFragment(new BlankFragment());
                }
            });

怎么办?

我如何获得活动?

2 个答案:

答案 0 :(得分:5)

创建Activity的对象并在onAttach方法中指定它,如下所示。 有时候getActivity会给出null,因此它是在onAttach中创建活动实例并使用该实例的更好方法。

private Activity mActivity;

@Override
public void onAttach(Activity activity) {
   super.onAttach(activity);
   mActivity = activity;
}

现在使用此对象而不是getActivity()

答案 1 :(得分:1)

onAttach(活动活动)方法现已弃用。 你应该使用这个:

@Override
public void onAttach(Context context) {
super.onAttach(context);
activity = getActivity();
}