アプリで発生している奇妙な問題に気づきました。アプリを実行しているときに、アプリを最小化してから設定に移動して言語を変更し、アプリを再開すると(注:これは最小化/再開であり、終了/開始ではありません)、をonCreate()
呼び出す代わりにアクティビティを呼び出しonResume()
ます。
これは、特にビューでフラグメントを使用している領域で、多くの問題を引き起こしています。表示されているフラグメントは古いフラグメントですが、それらが保持しているアクティビティ参照はですnull
。そのgetActivity()
ため、再開直後は機能せずNullPointerException
、多くの場所で発生します。
私のアプリはAndroid4.0.4以降用に構築されており、さまざまなデバイスやエミュレーターでこの問題に気付いたので、プラットフォームの問題ではありません。
onResume()
理想的には、想定どおりに電話をかけたいと思います。そうでない場合は、アプリのクラッシュに直面するのではなく、アプリケーションをサイレントに再起動して、ユーザーをホーム画面に表示することをお勧めします。
アプリ自体は、英語(米国)という1つの言語のみをサポートしています。
誰かが以前にこの問題に直面したことがありますか?はいの場合、それを解決することができますか?
編集:クラススタッカーの回答に基づいて、構成の変更を自分で処理する必要があるようです。例外がそれ自体でスローされることを除いて、これは問題ないはずonCreate()
です。私はで呼んgetWindow().setRequestFeature(Window.FEATURE_INDETERMINATE_PROGRESS)
でいonCreate()
ます。ロケートが変更されると、この行は、これRuntimeException
を前に呼び出す必要があるというメッセージをスローしsetContentView()
ます。
これは、私のアクティビティが適切に破棄されていないことを意味しますか?