ユーザーがアプリを開くたびに、新しい記事とその詳細なストーリーをダウンロードする必要があるニュースアプリを設計しています。私はこれをすべてバックグラウンドスレッドで行っています。私の主な焦点は、ユーザーが追加のダウンロード料金を負担するのを防ぐために、ユーザーがアプリを終了するとすぐにバックグラウンド スレッドを停止することでした。
これを実現するために、スプラッシュ スクリーンでバックグラウンド ダウンロードを開始し、アプリがまだ実行されているかどうかをバックグラウンド プロセスに知らせるフラグ変数をチェックし続けます。
私の質問は次のとおりです。このフラグ変数の初期化については非常に明確です。アプリケーションの開始点であるためonCreate()
、サブクラスで初期化しました。Application
でもどこをクリアしたらいいのかわからない。onDestroy()
MainActivityでやってみました。ただし、システムがメモリを解放する必要がonDestroy()
ある場合、あるアクティビティから別のアクティビティへの移行時に呼び出されることがよくあり ます。そのため、画面を切り替えて実際にアプリを閉じていなくても、バックグラウンド スレッドが停止してしまいます。このシナリオにどのように対処すればよいですか? これを処理するよりスマートな方法はありますか?