是否有可能在android中找到当前的前台活动。我没有使用ActivityGroup。
答案 0 :(得分:8)
我的猜测是你需要查看ActivityManager class。我简要地看了一下这些文档,这就是我想出来的。
有一个功能:
public List<ActivityManager.RunningTaskInfo> getRunningTasks (int maxNum)
来自Android docs:
返回当前正在运行的任务列表,其中最新的是第一个和更早的任务。请注意,“运行”并不意味着任何任务的代码当前已加载或活动 - 该任务可能已被系统冻结,因此可以在下次将其置于前台时以其先前状态重新启动。
我的想法是,如果你传入maxNum=1
,它应该会给你最近的任务,即。最重要的任务。每个ActivityManager.RunningTaskInfo
都有一个名为topActivity
的属性。
public ComponentName topActivity
来自Android docs:任务历史堆栈顶部的活动组件。这是用户目前正在做的事情。
答案 1 :(得分:7)
尝试以下代码:您需要提供适当的权限
private String getCurrentTopActivity() {
ActivityManager mActivityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningTaskInfo> RunningTask = mActivityManager.getRunningTasks(1);
ActivityManager.RunningTaskInfo ar = RunningTask.get(0);
return ar.topActivity.getClassName().toString();
}