1

現在、アプリケーションを終了または一時停止するときにサービスを開始する必要がある Android 用のアプリを作成しています。私は何をすべきか?私のアプリケーションでは、何かをクリックするたびに別のアクティビティに移動するため、それらのアクティビティ内で startservice を onpause にすることはできません。私は何をすべきか?

4

4 に答える 4

0

Activity が表示されなくなると、 が呼び出されますonStop()。ただし、Android OS が内部で処理するため、アプリが破棄されているかどうかはまだわかりません。したがって、アプリが にあるかどうかを確認するには、次の手順を試してくださいbackground

  1. を使用して実行中のタスク情報を取得します

    ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
    List<RunningTaskInfo> tasks = am.getRunningTasks(1);
    
  2. タスク リストが空でない場合は、実行中のタスクがアプリに属しているかどうかを確認します。属している場合は、サービスを開始できる呼び出し元の関数に 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 に答える