新しいアプリの起動が開始されたときに通知を受け取るにはどうすればよいですか? 明確に言うと、アプリのアイコンをクリックすると、アプリの起動が開始されます。サービスをそのイベントのオブザーバーに設定したいと思います(存在する場合)。アプリが起動する前にそれを知るイベントや方法はありますか?
質問する
631 次
2 に答える
1
もし私があなたなら、ActivityManagerを
getSystemService(Context.ACTIVITY_SERVICE)
次に、次のコードを使用してプログラムをセットアップします。
private final static Handler updateHandler = new Handler();
private static long WAKEUP_INTERVAL = 10000; // 10secs?
private Runnable periodicUpdate = new Runnable() {
@Override
public void run() {
checkRunningProcesses();
updateHandler.postDelayed(this, WAKEUP_INTERVAL);
}
};
次の2つのことを定期的にチェックします。
- getRecentTasks()をチェックして、最近起動したユーザーを確認します(GET_TASKS権限が必要です)
- getRunningAppProcesses()から取得し、定期的なチェック間隔が長すぎて一部のプロセスが追加/削除されたがgetRecentTasks()に表示されなかった場合に備えて、実行中のプロセスのリストをどこかに保持します
このようにして、プログラムの起動に関する通知をすぐに受け取ることはできませんでしたが、それについて何かをするのに十分な時間(おそらく数秒後)にそれを見つけることができました。
もう1つ、バッテリーを節約するために、画面が暗くなったらチェックを停止することをお勧めします。
于 2012-04-19T10:14:40.257 に答える
0
インテントなどでこれを実際に行うことはできません。この男のブルートハックをチェックしてください。素晴らしい解決策ではありませんが、最も近い解決策です。
于 2012-04-17T17:29:35.960 に答える