我在我的应用程序中有多个活动。请考虑以下情况...
活动A调用活动B。B调用C。当用户按下返回键时,C会生成通知并返回到B。现在再次按下返回键,那么A将被显示,并且再次按下返回键将终止A,并显示通知...现在,当用户按下通知图标时,活动C会被加载....到此为止,行为是正确的....现在用户按下返回键,我使用我的代码启动活动A,因为C是从通知中加载的。
另一个案例 活动A调用活动B。B调用C。当用户按下返回键时,C会生成通知并返回到B。现在用户按下HOME KEY。然后过一段时间选择通知图标,它将显示活动C。现在用户按下返回键,默认情况下会显示活动B(这正是我想要的)....但我的代码(因为C是从通知中加载的)...我正在显示活动A(当用户按下返回键时,活动B被显示)。
我想知道自己应用程序的活动计数,以便如果不是1,则可以避免执行我的代码来启动活动A。
到目前为止,我已经使用以下代码完成了这个问题
ActivityManager actM = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
List<ActivityManager.RunningTaskInfo> listm = actM.getRunningTasks(1);
int iNumActivity = listm.get(0).numActivities;
但是使用此代码需要使用许可GET_TASKS... 我不太舒服,因为我没有跟踪其他应用程序的数据/活动计数。
如何解决这个问题? 是否有其他方法可以实现这一点?
编辑 如何知道自己应用程序的活动计数?