Android如何知道某个应用已启动,并根据启动时间确定应用优先级

在Android中,人们如何知道某个应用已启动。我想检测启动时安装的所有应用,并根据其使用时间确定应用的优先级。有解决方案建议这样做吗?

我知道使用广播,但是启动应用程序后,ActivityManager是否会发送一些Intent,以及如何在代码中检测到此Intent?也欢迎任何其他解决方案。

回答:

如果您知道应用程序的程序包名称,请尝试以下操作( 将以下代码片段放入应用程序的onCreate方法中 ):

 ActivityManager am= (ActivityManager) this.getSystemService(ACTIVITY_SERVICE);

然后,

 boolean exit = false;

while(!exit)

{

List<RunningTaskInfo> taskInfo = am.getRunningTasks(1);

ComponentName componentInfo = taskInfo.get(0).topActivity;

if(componentInfo.getPackageName().equals("Your package name"))

{

//Do your work here

exit = true;

}

}

当您启动应用程序时,它将被放入 。该

将在前台返回的活动。因此,您可以通过使用第二个代码段比较程序包来知道您的应用已启动。

:将第二个代码段放入 Asynctask中, 以便可以在 后台 检查应用程序是否已启动。

为了获得优先级,我认为您可以通过检查列表 来实现,该列表将包含所有正在运行的应用程序。

以上是 Android如何知道某个应用已启动,并根据启动时间确定应用优先级 的全部内容, 来源链接: utcz.com/qa/415623.html

回到顶部