一尘不染

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

java android

我是Android的新手。我正在开发必须获取有关当前在前台运行的应用程序的信息的应用程序。

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

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

我怎样才能做到这一点?


阅读 396

收藏
2020-03-25

共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+"");         
}
2020-03-25