Android 片段 - getActivity().runOnUiThread returns 重启应用时为空

Android Fragment - getActivity().runOnUiThread returns null when restarting app

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

我正在片段中执行此代码:

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

怎么办?

如何获得 Activity?

创建 Activity 的对象并将其分配给 onAttach 方法,如下所示。 有时 getActivity 给出 null 所以它是在 onAttach 中创建 activity 实例并使用该实例的更好方法。

private Activity mActivity;

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

现在使用此对象代替 getActivity()

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

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