如何在android中找到当前的前台活动

时间:2011-11-15 05:28:47

标签: android android-activity

是否有可能在android中找到当前的前台活动。我没有使用ActivityGroup。

2 个答案:

答案 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();
    }