我对 Android 很陌生。我正在开发必须获取有关当前在前台运行的应用程序的信息的应用程序。
这意味着如果用户启动任何应用程序,我的应用程序应该在我的应用程序不中断启动的应用程序之前捕获启动的应用程序信息。
示例:如果用户启动浏览器应用程序,我的应用程序应在日志中打印浏览器应用程序信息。
我该怎么做?
最佳答案
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+"");
}
另外,看看以下线程: See Android recent task executed by the user
关于java - 如何在 Android 中以编程方式查找当前正在运行的应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8091350/