アプリケーションが(ユーザーまたはシステムによって)閉じられたときを見つける方法はありますか。つまり、ユーザーがアプリケーションランチャーアイコンを押すことによってのみアプリケーションを再起動できます。
プロセスの名前がgetRunningAppProcesses()から削除されたときに Android システムがインテントをブロードキャストする場合にのみ可能だと思います。
SO に関するすべての可能な Q&A を読みましたが、質問は ActivityLifecycle とは関係ありません。
アプリケーションが(ユーザーまたはシステムによって)閉じられたときを見つける方法はありますか。つまり、ユーザーがアプリケーションランチャーアイコンを押すことによってのみアプリケーションを再起動できます。
プロセスの名前がgetRunningAppProcesses()から削除されたときに Android システムがインテントをブロードキャストする場合にのみ可能だと思います。
SO に関するすべての可能な Q&A を読みましたが、質問は ActivityLifecycle とは関係ありません。
一般に、ユーザーがアプリを「終了」するのを待つことは、次の理由から悪い考えです。
このため、アプリが「死ぬ」のを待つことに基づくソリューションは悪いものだと思います。代わりに、アプリケーションのセマンティクスを尊重するソリューションを考え出す必要があります。たとえば、コンテンツ プロバイダの 1 つにデータを入力している場合、一貫性を処理する必要があります (たとえば、アプリ内のフラグメント全体)。
うーん..ファイルシステムの /proc を手動で監視して、関心のあるアプリケーションのプロセス ID が存在するかどうかを確認できます。
ターミナル ウィンドウから、次のことを試してください。例えば :
> MYPID=(`adb shell ps | grep com.mydomain.myapp | awk '{print $2}'`)
> adb shell [ -d /proc/$MYPID ] && echo "PID $MYPID Exists"
com.mydomain.myappをアプリのパッケージ名に置き換えます
Android でプロセスを監視するために使用できるアプリがいくつかあります。http://code.google.com/p/android-os-monitor/をご覧ください
android-os-monitor プロジェクトは、JNI レイヤーを使用して /proc http://code.google.com/p/android-os-monitor/source/browse/OSMonitor/jni/process.c?repo=とのやり取りを実装し ます。オスモニター