android - 如何知道我的应用程序的 Activity 计数?

标签 android android-activity

我的应用程序中有多项 Activity 。 请考虑以下情况...

Activity A 调用 Acitivy B。B 调用 C。当用户按下后退键时,C 生成通知并转到 B。现在再次按下后退键,因此将显示 A,再次返回键也将终止 A 并显示通知。 .. 现在,当用户按下通知图标时,Activity C 被加载....直到这部分行为正确....现在用户按下,我使用我的代码启动 Activity A,因为 C 是从 Notification 加载的。

另一种情况 Activity A 调用 Acitivy B。B 调用 C。当用户按下返回键时,C 生成通知并转到 B。现在用户按下 HOME KEY。然后在一段时间后选择通知图标,它将显示 Activity C。现在用户按下返回键,默认情况下它显示 Activity B(我想要的)......但是我的代码(从通知加载的 C)......我是显示 Activity A(n 个用户按下,然后显示 Activity B)。

我想知道我自己的应用程序的 Activity 计数,这样我就可以避免执行我的代码来启动 Activity A(如果它不是 1)。

到目前为止,我已经使用以下代码完成了此操作

ActivityManager actM = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
List<ActivityManager.RunningTaskInfo> listm = actM.getRunningTasks(1);
int iNumActivity = listm.get(0).numActivities;

但使用此代码需要使用权限 GET_TASKS...我对此感到不满意,因为我没有跟踪任何其他应用程序数据/Activity 计数。

如何解决这个问题? 还有其他方法可以实现吗?

编辑 如何知道自己应用的 Activity 数?

最佳答案

一种方法是将显示的 Activity 从每个 Activity 中的 onResume() 插入堆栈(单例),并在按下“返回”时将其弹出。这样,只要按下“返回”,您就会知道当前的 Activity 堆栈。由于这将由所有类共享,因此有助于存储值。

关于android - 如何知道我的应用程序的 Activity 计数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5429460/

相关文章:

android - Webview 未从 URL 加载 PDF

java - 无法将 android.app.Fragment 转换为 mapping.SupportMapFragment

Android,项目和 Activity 生命周期中的 Activity 数量不受限制!

android - 我应该将单人和多人游戏模式分成不同的 Android Activity 吗?

android - fragment 如何从 parentActivity 获取数据?

Android:创建 "first time user" Activity

android - 为什么 Canvas::drawArc 方法绘制的角度不正确?

android - 在导航中表示分层数据的最佳做法是什么?

java - MediaPlayer 在 Android 中工作,但没有进展

android - fragment - getActivity() 如何在 onAttach 之后返回 null