android - 如何检查后台活动堆栈中的实例并删除其中一个活动
问题描述
我有3 activities
,一个叠一个
A -> B -> C -> D
- 现在当我在时
D
,如何找到 B 在 backstack 中可用 - 现在,当 B 出现在后堆栈中时,仅从堆栈 A、B、C、D 中删除 B
- 然后再次启动 B ... 使结果为 ACDB
这在android中是否可行,如何?
PS:我需要发布代码吗?..让我知道...因为只有活动,没有其他逻辑
解决方案
您可以使用 ActivityManager 实现此目的。下面是相同的代码,
ActivityManager m = (ActivityManager) ctx.getSystemService( ctx.ACTIVITY_SERVICE );
List<RunningTaskInfo> runningTaskInfoList = m.getRunningTasks(10);
Iterator<RunningTaskInfo> itr = runningTaskInfoList.iterator();
while(itr.hasNext()){
RunningTaskInfo runningTaskInfo = (RunningTaskInfo)itr.next();
int id = runningTaskInfo.id;
CharSequence desc= runningTaskInfo.description;
int numOfActivities = runningTaskInfo.numActivities;
String topActivity = runningTaskInfo.topActivity.getShortClassName();
}
这将为您提供所有活动。有关更多详细信息,请参阅文档
https://developer.android.com/reference/android/app/ActivityManager
推荐阅读
- mongodb - 基于数组 Mongoose/Mongodb 中嵌套子文档的 desc 值对查询结果进行排序
- php - 确定属性值是否为空字符串
- rust - Rust 特征有运行时开销吗?
- r - 将多个PDF读入R中的数据框
- python - 使用 Beautifulsoup 简化嵌套 HTML
- python - 有没有一种矢量化的方法可以用 np.random.choice() 对不同的 p 进行多次采样?
- java - 变量可能尚未初始化。解决这个问题的最佳方法是什么?
- ios - 在 iOS 上使用亚马逊产品广告 API
- sql-server - SQL 数据库的 Azure 用户 GRANT
- python - 在 Python 中构建数据框