Android:我如何检查活动是否正在运行?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (18)

是否有任何简单的方法来确定某个活动是否处于活动状态?我想根据哪些活动处于活动状态来执行某些操作。例如:

if(activityrunning == activity1)
//do this
else if (activityrunning == activity2)
//do something else
提问于
用户回答回答于

你可以使用static在活动中使用变量:

class MyActivity extends Activity {
     static boolean active = false;

      @Override
      public void onStart() {
         super.onStart();
         active = true;
      } 

      @Override
      public void onStop() {
         super.onStop();
         active = false;
      }
}
用户回答回答于

我觉得更清楚的是这样的:

  public boolean isRunning(Context ctx) {
        ActivityManager activityManager = (ActivityManager) ctx.getSystemService(Context.ACTIVITY_SERVICE);
        List<RunningTaskInfo> tasks = activityManager.getRunningTasks(Integer.MAX_VALUE);

        for (RunningTaskInfo task : tasks) {
            if (ctx.getPackageName().equalsIgnoreCase(task.baseActivity.getPackageName())) 
                return true;                                  
        }

        return false;
    }

扫码关注云+社区