我有这个代码片段可能会检测正在启动的其他应用并启动活动,然后再继续使用该应用。问题是它对其他应用程序无效,但只检测我自己的应用程序正在启动而不是其他应用程序。请帮助我们,这是我的项目,我需要正确实施,并且没有任何代码可以使用。
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();
}
}
}
};
答案 0 :(得分:0)
您无法在实时中检测到应用启动。您的方法只检测一次,最重要的运行任务。你需要创建一个服务和exemaple,每一秒启动你的方法(检查顶部运行的任务)。但这是一个非常糟糕的做法。你会非常快地杀死你的电池。