重新启动应用时,getActivity()
返回null
时遇到问题,所以我用onAttach()
解决了问题。但是现在我遇到了FragmentTransaction
commit()
和commitAllowingStateLoss
的新问题。它说活动已被破坏。
Activity mActivity;
private FragmentActivity myContext;
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
myContext =(FragmentActivity) activity;
mActivity = activity;
}
private void navigateToFragment(Fragment fragment){
FragmentTransaction transaction = myContext.getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.content, fragment);
transaction.commitAllowingStateLoss();
}
我第一次运行应用程序时导航工作,但重新打开应用程序时,它会在transaction.commitAllowStateLoss();
崩溃(mActivity).runOnUiThread(new Runnable() {
@Override
public void run() {
enableMenu();
openMenu();
navigateToFragment(new BlankFragment());
}
});
请帮助,不知道该怎么做......
答案 0 :(得分:0)
在交易片段之前检查activity
是否完成(在这种情况下)
以下是片段: -
if (!isFinishing()) {
FragmentTransaction transaction = myContext.getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.content, fragment);
transaction.commitAllowingStateLoss();
}
答案 1 :(得分:0)
单击“返回”并退出应用程序时,一些句子将存储在内存中以加快启动速度。因此,为了使应用重置100%,我必须在MainActivity中添加它。
@Override
protected void onDestroy() {
super.onDestroy();
System.exit(0);
}
如果有人有更好的解决方案,请发布!