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

Chr*_*ter 0 android android-activity android-fragmentactivity

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

我在片段中执行此代码:

(getActivity()).runOnUiThread(new Runnable() {
            @Override
            public void run() {
                    enableMenu();
                    openMenu();
                    navigateToFragment(new BlankFragment());
                }
            });
Run Code Online (Sandbox Code Playgroud)

该怎么办 ?

我怎样才能获得活动?

San*_*ndy 5

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

private Activity mActivity;

@Override
public void onAttach(Activity activity) {
   super.onAttach(activity);
   mActivity = activity;
}
Run Code Online (Sandbox Code Playgroud)

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

  • *当片段被分离*<=这是关键...**那么你不应该使用父母(不再)活动的片段**...*和它的作品般的魅力!*和可能停止工作一些新版本的android因为你没有在片段中占用片段的生命周期...这就是程序制作的糟糕程度 (2认同)