检测正在启动的其他应用

时间:2017-03-07 13:47:33

标签: android android-service

我有这个代码片段可能会检测正在启动的其他应用并启动活动,然后再继续使用该应用。问题是它对其他应用程序无效,但只检测我自己的应用程序正在启动而不是其他应用程序。请帮助我们,这是我的项目,我需要正确实施,并且没有任何代码可以使用。

private final Handler toastHandler = new Handler()
{
    @Override
    public void handleMessage(Message msg)
    {
     String activityOnTop;
     ActivityManager mActivityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
     List<ActivityManager.RunningTaskInfo> RunningTask = mActivityManager.getRunningTasks(1);
     ActivityManager.RunningTaskInfo ar = RunningTask.get(0);
     activityOnTop=ar.topActivity.getClassName();

     if(activityOnTop.equals("com.appcontroller"))
     {
      pActivity = activityOnTop.toString();
     }
     else
     {
      if(activityOnTop.equals(pActivity) || activityOnTop.equals("com.appcontroller"))
      {

      }
      else
      {
       Intent i = new Intent(MyService.this, BreakTimeView.class);
          i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
          startActivity(i);
          Toast.makeText(MyService.this, pActivity, 1).show();
          pActivity = activityOnTop.toString();

      }
     }




    }
};    

1 个答案:

答案 0 :(得分:0)

您无法在实时中检测到应用启动。您的方法只检测一次,最重要的运行任务。你需要创建一个服务和exemaple,每一秒启动你的方法(检查顶部运行的任务)。但这是一个非常糟糕的做法。你会非常快地杀死你的电池。