如何在Android中以编程方式查找当前正在运行的应用程序?
2022-09-02 23:55:01
我对安卓很陌生。我正在开发的应用程序,该应用程序必须获取有关当前在前台运行的应用程序的信息。
这意味着如果用户启动任何应用程序,我的应用程序应该捕获启动的应用程序信息,到我的应用程序不应该中断启动的应用程序时。
示例:如果用户启动浏览器应用程序,我的应用程序应在日志中打印浏览器应用程序信息。
我该怎么做?
我对安卓很陌生。我正在开发的应用程序,该应用程序必须获取有关当前在前台运行的应用程序的信息。
这意味着如果用户启动任何应用程序,我的应用程序应该捕获启动的应用程序信息,到我的应用程序不应该中断启动的应用程序时。
示例:如果用户启动浏览器应用程序,我的应用程序应在日志中打印浏览器应用程序信息。
我该怎么做?
ActivityManager activity_manager = (ActivityManager) context
.getSystemService(Activity.ACTIVITY_SERVICE);
ActivityManager
有方法。 似乎是您正在寻找的解决方案。getRunningTasks(int)
ActivityManager
final ActivityManager activityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
final List<RunningTaskInfo> recentTasks = activityManager.getRunningTasks(Integer.MAX_VALUE);
for (int i = 0; i < recentTasks.size(); i++)
{
Log.d("Executed app", "Application executed : " +recentTasks.get(i).baseActivity.toShortString()+ "\t\t ID: "+recentTasks.get(i).id+"");
}
另外,看看下面的线程: 查看用户执行的Android最近执行的任务
您可以使用类似于以下内容的内容:
ActivityManager activityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
List<RunningTaskInfo> tasks = activityManager.getRunningTasks(Integer.MAX_VALUE);
for (int i = 0; i < tasks.size(); i++) {
Log.d("Running task", "Running task: " + tasks.get(i).baseActivity.toShortString() + "\t\t ID: " + tasks.get(i).id);
}