【问题标题】:Open whole application in SDK from push notifications通过推送通知在 SDK 中打开整个应用程序
【发布时间】:2015-06-24 14:13:08
【问题描述】:

我正在开发一个用于 android 应用程序的 SDK,并且我想在我这边为集成了我的 SDK 的托管应用程序控制推送通知。 推送目前正常,一切都很好,除了一件事:

当推送到达时,我根据来自服务器的内容打开某个 Activity,场景是我看到我的新 Activity 打开正常,但它只打开它,它不会将托管应用程序作为“整体”打开. 我知道这是 iOS 中的行为。

这意味着当我关闭活动时,根本没有返回托管活动的选项(我认为这是从推送通知打开单个活动时的默认行为)。

所以我的问题是这样的:

我能否像用户从主屏幕打开托管应用程序一样通过推送打开托管应用程序并显示从推送打开的挂起活动?那么当用户关闭它时,他会返回到应用程序的初始状态?

提前致谢。

【问题讨论】:

    标签: android android-activity sdk google-cloud-messaging


    【解决方案1】:

    你有两个选择,第一个是坏的,第二个是正确的

    1- 将某些内容传递给应用程序的主要活动的意图,您可以检查并打开所需的活动,而无需完成主要活动。这很糟糕,因为它会打开两个活动而不是一个,因此加载起来会很重

    2- 打开所需的活动并覆盖活动的onBackPressed() 以检查活动是否在应用程序堆栈的顶部,然后打开主活动。

    @Override
    public void onBackPressed() {
        if(isTaskRoot()) {
            startActivity(new Intent(this, MainActivity.class));
        }
        super.onBackPressed();
    }
    

    什么是TaskRoot()?

    公共布尔值isTaskRoot()

    API 级别 1

    中添加

    返回此活动是否是任务的根。根是 任务中的第一个活动。

    【讨论】:

    • 我不知道托管应用程序的代码。这就是为什么我想看看是否有办法在不接触托管应用程序代码的情况下做到这一点。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多