android获取栈顶activity
时间: 2023-05-02 19:05:42 浏览: 131
获取栈顶的activity
如何获取栈顶Activity?
可以使用ActivityManager的getRunningTasks方法来获取当前运行的任务栈的信息,进而获取栈顶的Activity。
示例如下:
``` java
ActivityManager manager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningTaskInfo> runningTasks = manager.getRunningTasks(1);
if (runningTasks != null && !runningTasks.isEmpty()) {
ComponentName topActivity = runningTasks.get(0).topActivity;
String packageName = topActivity.getPackageName();
String className = topActivity.getClassName();
Log.i(TAG, "packageName=" + packageName + ", className=" + className);
}
```
注意:
1. 需要添加android.permission.GET_TASKS权限。
2. getRunningTasks方法在Android5.0及以上版本中已经被弃用,推荐使用ActivityManager的getRunningAppProcesses方法和ActivityManager.RunningAppProcessInfo类来实现。
3. 获取栈顶Activity有时候并不是一个好的做法,因为它可能会影响用户体验。可以根据实际需求选择使用。
阅读全文