2016-08-15 7 views
3

Androidシステムは、システムのメモリが不足している場合にアプリケーションプロセスを削除することで、より重要な作業のためにリソースを再利用することができます(つまり、サービスの開始は別のアプリケーションにあります)。しかし、Androidシステムが対応するアプリプロセスに触れることなく、アプリケーションタスク(バックスタック)のみを削除することが可能かどうかは確かではありませんでしたか?Android low memory killer&application back stack

可能であれば、各onDestroy()コールバックを呼び出してバックスタックアクティビティを破棄することもできます。そこで、我々は、このタスクの削除をキャッチすることができますどのように我々は

おかげで(onTaskRemovedを通じて)サービスでそれをキャッチと同じようにAndroidがリソースを(またはAndroidが整頓するのが好きという理由だけで)再利用したい場合

+0

これは読んで本当に私の質問に答える非常に良いリソースです。https://medium.com/google-developers/who-lives-and-who-dies-process-priorities-on-android-cb151f39044f – zgulser

答えて

2

、それは通常ますフォアグラウンドの活動やフォアグラウンドサービスをホストしていないOSプロセスを殺すだけです。 Androidは実際にOSプロセスを強制終了することでこれを行います。したがって、onDestroy()は、それらのOSプロセスでアクティブなコンポーネントでは呼び出されません。これについて警告されることはないので、この動作を「キャッチ」する方法はありません。

+1

このように、それは非常に残酷な殺しです。 – zgulser

+0

はい、あなたのアプリはこれをうまく処理できる必要があります。そうしないと、ユーザーはハートビートであなたのアプリをアンインストールします。 –

+0

「onStop」はどんな場合でも起動しますか? –