获取当前栈顶的Activity

Posted 他叫小黑

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了获取当前栈顶的Activity相关的知识,希望对你有一定的参考价值。

如何获得当前栈顶的Activity?

总的步骤是:
1. 得到当前运行环境(context)的Activity管理器;
2. 通过Activity管理器得到当前的任务栈信息;
3. 从任务栈中获得栈顶的Activity的名称。

ActivityManager manager = (ActivityManager)mContext.getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningTaskInfo> runningTaskInfos = manager.getRunningTasks(1);
if(runningTaskInfos != null && runningTaskInfos.size() > 0)
    String shortClassName = runningTaskInfos.get(0).topActivity.getShortClassName(); //类名 
    String className = runningTaskInfos.get(0).topActivity.getClassName(); //完整类名
    String packageName = runningTaskInfos.get(0).topActivity.getPackageName(); //包名

androidManifest.xml中增加权限:

<uses-permission android:name = “android.permission.GET_TASKS”/>

以上是关于获取当前栈顶的Activity的主要内容,如果未能解决你的问题,请参考以下文章

adb 和android开发常用命令

Android-1Activity生命周期

Android四大组件归纳总结

Activity常用的方法

adb shell dumpsys 命令

Android中activity的四个启动模式