【问题标题】: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;
    }
    

    效果很好。

    【讨论】:

    • 这很有趣。我会试试的。
    猜你喜欢
    • 1970-01-01
    • 2021-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    相关资源
    最近更新 更多