2016-12-21 3 views
0

AppCompatActivityを使用している私のアプリケーションでは、私はActivityのメインを持っていて、それ以外のものはFragmentで表示されます。バックグラウンドから戻ったときにフラグメントがクラッシュした場合のアクティビティを防ぐにはどうすればよいですか?

しかし、私はホームボタンを押して電話で何かをしたときに気づきました。私がアプリケーションに戻ると、 "残念なことにアプリケーションが終了しました"というエラーでクラッシュします。

私の研究から理解したことは、Activityなどがすべて破壊されるということです。アプリケーションをもう一度開くと、すべてが失われ、アプリケーションは何をすべきか分からずクラッシュします。

このような場合はどうすればよいですか?

アプリケーションが再オープンされたときに再起動するか、アプリケーションが以前に残していた場所から再開するだけで良いのであれば、私は満足しています。

アプリがクラッシュするのを防ぐにはどうすればよいですか?

+0

のためにこれを参照してください。https://developer.xamarin.com/guides/android/platform_features/fragments/part_1_-_creating_a_fragment /#Fragment_Lifecycle – SushiHangover

+1

アプリがクラッシュした場合は、関連するログを含めてください。この特定の問題については、adb logcatから何かを収集できるはずです。私はあなたがコンストラクタなどを単に欠いていると思います。 – Cheesebaron

答えて

1

firebase crash analyticsと統合されている場合、正確な例外エラーメッセージのためにAndroidモニターウィンドウまたはfirebaseコンソールを確認してください。

一つの可能​​性は、これはcommitAllowingStateLoss()の代わりに、このcommit()を使用することによって解決することができ、このようなエラー何か、

java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState 
    at android.support.v4.app.FragmentManagerImpl.checkStateLoss(FragmentManager.java:1341) 
    at android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:1352) 
    at android.support.v4.app.BackStackRecord.commitInternal(BackStackRecord.java:595) 
    at android.support.v4.app.BackStackRecord.commit(BackStackRecord.java:574) 

である可能性があります。

は、私がライフサイクルイベントを実装するために活動&フラグメントライフサイクルを読んで推薦する詳細http://www.androiddesignpatterns.com/2013/08/fragment-transaction-commit-state-loss.html

関連する問題