如何在Android中以编程方式查找当前正在运行的应用程序?

2022-09-02 23:55:01

我对安卓很陌生。我正在开发的应用程序,该应用程序必须获取有关当前在前台运行的应用程序的信息。

这意味着如果用户启动任何应用程序,我的应用程序应该捕获启动的应用程序信息,到我的应用程序不应该中断启动的应用程序时。

示例:如果用户启动浏览器应用程序,我的应用程序应在日志中打印浏览器应用程序信息。

我该怎么做?


答案 1
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最近执行的任务


答案 2

您可以使用类似于以下内容的内容:

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);
}

推荐