【问题标题】:how to know which activity was executed last如何知道最后执行了哪个活动
【发布时间】:2016-04-03 01:08:39
【问题描述】:
我有两个活动使用具有相同优先级的相同意图过滤器接收器,比如说活动 1 和活动 2。
每个页面都带我通过一个意图来扩展 IntentService 的另外两个不同的活动,即 activity1-->activityA 和 activity2-->activityB。
当它们在这两个新页面上设置时,activityX 被触发,之后它应该带我回到原来的页面。
在这种情况下,activityX 不知道我是来自 activityA 还是 activityB。
我该如何解决这个问题...任何建议..!
【问题讨论】:
标签:
android
android-intent
intentfilter
【解决方案1】:
我使用 DeepLinkingActivity 找出最后运行的活动
public Integer isAppInThisClass(Context ctx) {
ActivityManager activityManager = (ActivityManager) ctx.getApplicationContext().getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningTaskInfo> services = activityManager.getRunningTasks(Integer.MAX_VALUE);
if (services.size() > 0 && services.get(0).topActivity.getClassName().toString().equalsIgnoreCase("com.example.example.example.activityA")) {
return 1;
}
if (services.size() > 0 && services.get(0).topActivity.getClassName().toString().equalsIgnoreCase("com.example.example.example.activityB")) {
return 2;
}
return 3;
}
效果很好。