如何获取栈中的activity

如何获取栈中的activity,第1张

实现

获拍空取任务

必须添加权限:

<!--获取Activity任务栈 权限-->源滚

<uses-permission android:name="android.permission.GET_TASKS" />12

具体实现,获取栈以及其中内容:

/袭裂瞎/ 获取activity任务栈

ActivityManager manager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE)

ActivityManager.RunningTaskInfo info = manager.getRunningTasks(1).get(0)

// 类名 .ui.mobile.activity.WebsiteLoginActivity

有两种实现方式:

第一种:自己手动写一个程序,通过系统提供的函数来打印任务栈顶的Activity名称来判断是否是同一个Activity:

如下:

[java] view plaincopy

List<RunningTaskInfo>runningTasks = mActivityManager.getRunningTasks(5)

for (RunningTaskInfo runningTaskInfo : runningTasks) {

Log.v("taskInfo", runningTaskInfo.topActivity.toString())

}

以下是列正并纯表页的任务栈顶信息:

以下是详情页的任务栈顶信息:

很明显,两个页面不是同一个Activity.

第二种:通过adb shell dumpsys activity命令

如下:

使用cmd启动adb shell:

E:\Android_Sdk\android-sdks\platform-tools>adb shell

shell@NX601J:/ $

使用命令dumpsys activity >taskinfo.txt 命令 将打印出的结果输出到taskinfo.txt文件中,方便导出到电脑查看.

1.首先在磁举咐盘的根目录建立一个taskinfo.txt的文件:

shell@NX601J:/storage/sdcard0 $ touch taskinfo.txt

2.然后通过命令将结果输出到这个文件中:

shell@NX601J:/storage/sdcard0 $ dumpsys activity >/storage/sdcard0/taskinfo.txt

命令执行完成文件中就存入了各种任务信息(只截取了蔽脊部分):

这个文件中存储了非常丰富的信息:

ACTIVITY MANAGER PENDING INTENTS (dumpsys activity intents)

ACTIVITY MANAGER CONTENT PROVIDERS (dumpsys activity providers)

ACTIVITY MANAGER SERVICES (dumpsys activity services)

ACTIVITY MANAGER ACTIVITIES (dumpsys activity activities)

ACTIVITY MANAGER RUNNING PROCESSES (dumpsys activity processes)

Historical broadcasts [background]:

Running activities (most recent first):

Recent tasks:

通过字面意思就可以知道是什么吧?

找到我们想要的结果:

=================================================================

这样,通过执行俩次同样的 *** 作就可以知道是否是同一个Activity了.

总的步骤是: 1. 得到当前运行环境(context)的Activity管理器; 2. 通过Activity管理器得到当前的任务栈信衫闷息; 3. 从任务栈中猜塌仿获得栈顶的Activity的名称。穗纤 具体读者可以参看下面的代码和Android帮助文档。 代码举例 : String getTopActivity(Act...


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12291313.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存