現在、アプリケーションを終了または一時停止するときにサービスを開始する必要がある Android 用のアプリを作成しています。私は何をすべきか?私のアプリケーションでは、何かをクリックするたびに別のアクティビティに移動するため、それらのアクティビティ内で startservice を onpause にすることはできません。私は何をすべきか?
質問する
1847 次
4 に答える
0
Activity が表示されなくなると、 が呼び出されますonStop()
。ただし、Android OS が内部で処理するため、アプリが破棄されているかどうかはまだわかりません。したがって、アプリが にあるかどうかを確認するには、次の手順を試してくださいbackground
。
を使用して実行中のタスク情報を取得します
ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); List<RunningTaskInfo> tasks = am.getRunningTasks(1);
タスク リストが空でない場合は、実行中のタスクがアプリに属しているかどうかを確認します。属している場合は、サービスを開始できる呼び出し元の関数に true を返します。そうでなければ戻る
false
if (!tasks.isEmpty()) { ComponentName topActivity = tasks.get(0).topActivity; if (!topActivity.getPackageName().equals(context.getPackageName())) { return true; }
編集:これは役立つかもしれません: http://developer.android.com/reference/android/app/ActivityManager.html#getRunningAppProcesses
于 2013-03-06T06:13:29.160 に答える
0
このメソッドをオーバーライドすることで、アプリが onPause か onDestroy かを確認できます
protected void onPause() {
Log.i("Status", "onPause");
super.onPause();
}
protected void onDestroy() {
Log.i("Status", "onDestroy");
super.onDestroy();
}
于 2013-03-06T06:07:09.890 に答える