每当我的位置发生变化时,我的应用程序都会崩溃。 应用程序结构很简单:有一个活动和一个片段。结论片段如下进行:
ItemsFragment itemsFragment = new ItemsFragment () {GroupID = groupID, CurrentGroup = currentGroup};
itemsFragment.RetainInstance = true;
var fragmentManager = SupportFragmentManager.BeginTransaction ();
fragmentManager.Replace (Resource.Id.flContent, (SupportFragment) itemsFragment);
fragmentManager.AddToBackStack (null);
fragmentManager.Commit ();
我使用C#Xamarin,但java原理是一样的,语法略有不同。帮助新手android开发人员了解原因。
在移动设备上产生错误:
“Unfortunately App has Stopped”
只能放试试......抓住并收到此错误:
Java.Lang.IllegalStateException: Can not perform this action after onSaveInstanceState
答案 0 :(得分:1)
原因是您在Activity暂停后有时会替换片段。解决问题的最简单方法是使用fragmentManager.CommitAllowingStateLoss();
正如@ user13所提到的,这是最简单,最糟糕的方式
如果你想要一个好的解决方案,你应该检查Activity
状态是否正常,以便在实际替换之前替换片段
答案 1 :(得分:0)
我建议您尝试使用Handler
export const childRoutes: Routes = [
{
path: 'someChild',
component: SomeChildComponent,
children: [
{ path: '', component: SomeChildSubComponent1 },
{ path: 'comp1', component: SomeChildSubComponent1 },
{ path: 'comp2', component: SomeChildSubComponent2 }
]
}
];