現在、これが私がフォローしているものです。アプリが起動したらすぐに、RESTサービスのリクエストを送信する必要があります。少し時間がかかるので、ロード画面を表示することを考えました。
私のアクティビティではonCreate()
、最初にロード画面(進行状況ダイアログ)を表示し、AsyncTaskを使用してバックグラウンドアクティビティを開始します。つまり、RESTサービスを要求しonPostexecute()
、ダイアログを閉じてからsetContentView(myxml);
、UIを更新します。
このアプローチを改善できますか?
私が直面した問題は、
ガベージコレクターが起動し(さまざまな理由で)、アプリがロード画面で永久にハングすることがあります。ガベージコレクターが原因で、RESTサービスのリクエストも送信されず、ウェイクアップコールが発生し、休憩が災害になり、強制終了します。 。
ただし、ForceCloseでさえ高速にならない場合があります。これは、GCが原因である可能性があります。だから私は戻ってロード画面で立ち往生することさえできません。その時点で私にできることは、家に帰ることだけです。その後、アプリに戻ってもまだ読み込まれているので、間違いなくこのアプローチは悪い設計のようです。正しいアプローチは何ですか?