我要开发一个任务管理器应用程序。
但在开始之前,我想知道我的应用程序是否可以检测其他应用程序状态?例如,他们是在运行背景还是在前台?
Android系统是否提供了一些方法来确定这个?
答案 0 :(得分:0)
我使用过这个实用程序并且它总是完成这项工作,但需要API 14+ 值得一提的是,在某些情况下使用ActivityManager会失败,例如强制停止和类似的东西,而且它确实提供了在应用程序状态发生变化后进行回调的实用程序
答案 1 :(得分:0)
首先,AFAIK,一次只有一个应用程序可以处于前台模式。这意味着,如果您运行应用程序(任务管理器),它将处于前台模式,并且正在运行的其他应用程序将处于后台模式,直到它们被杀死。因此,您不必列出前台应用程序列表。
要运行(当前应用程序位于前台,其他应用程序位于后台)应用程序列表,您可以使用以下代码:
ActivityManager actvityManager = (ActivityManager)
this.getSystemService( ACTIVITY_SERVICE );
List<RunningAppProcessInfo> procInfos = actvityManager.getRunningAppProcesses();
然而,要了解哪个应用程序位于前台,您可以在上述代码后使用以下代码:
for(RunningAppProcessInfo appProcess : appProcesses){
if(appProcess.importance == RunningAppProcessInfo.IMPORTANCE_FOREGROUND){
Log.i("Foreground App", appProcess.processName);
}
}
答案 2 :(得分:0)
在 ACTIVITY MANAGER 的帮助下,我们可以获得其他应用的所有状态。