为什么我的Android应用会定期崩溃?

时间:2016-09-02 07:23:13

标签: java android android-fragments android-activity xamarin

每当我的位置发生变化时,我的应用程序都会崩溃。 应用程序结构很简单:有一个活动和一个片段。结论片段如下进行:

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

2 个答案:

答案 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 }
      ]
  }
];