android - 处理后台通知

标签 android firebase push-notification notifications firebase-cloud-messaging

我正在构建一个应用,并决定使用 Firebase 的云消息传递。我遇到的问题是我不知道如何处理收到的通知数据。据我所知,当您从后台打开通知时,您会在启动器 Activity 中了解从服务器发送的数据。所以我的启动器 Activity 中有这样的内容:

Intent intentOpen;
    String message = getIntent().getStringExtra("message");

    if(message != null) {
            intentOpen = new Intent(this, MainActivity.class);
            if (message.equals(this.getResources().getString(R.string.new_shared_file))) {
                intentOpen.putExtra(MainActivity.nType, "SHARING");
            } else {
                intentOpen.putExtra(MainActivity.nType, "SERVICES");
            }
        }
    }

在我的主要 Activity 中,我想让 nType 来确定应用程序应该打开哪个 fragment :

public static String nType = "notification_type";

if (getIntent().hasExtra(nType)) {
        String notification = getIntent().getStringExtra(nType);
        if (notification.equals("SHARING")) {
            displayView(R.id.nav_shared_files);
        } else {
            displayView(R.id.nav_account);
        }
    } else if (savedInstanceState == null) {
        displayView(R.id.nav_online_files);
    }

那么我如何将字符串传递到主要 Activity (我在其他两个 Activity 之后到达)。或者是否有其他方法(例如从服务器端)将字符串获取到主要 Activity ?

感谢您提前的答复。

最佳答案

当然,例如您可以使用实例创建枚举类:

public enum DataManager {
        INSTANCE;
        private String data;

        public void setData(String data) {
            this.data = data;
        }

        public String getData() {
            return data;
        }
    }

因此,在第一个 Activity 中,当您获取数据时,您会调用:

DataManager.INSTANCE.setData("whateverdata");

在 Activity 中,您需要刚刚调用的数据:

String savedData = DataManager.INSTANCE.getData();

关于android - 处理后台通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52151799/

相关文章:

android - fragment 重叠在另一个 fragment 上

android - onRetainNonConfigurationInstance() 是否每次都调用配置更改?

android - 在 chrome 浏览器中打开一个 html 页面

ios - 推送通知 iOS 添加设备

objective-c - 在远程通知中添加文本字段,iOS 8

javascript - 要删除所有listItem,只需按一下按钮

ios - FIRApp 链接器错误 ["_OBJC_CLASS_$_FIRApp"]

java - 我如何检索 child (名称和列表图像)

ios - 无法在 iOS 上实现 Firebase Phone Auth

java - 使用java为windows phone 7发送推送通知