gpt4 book ai didi

android - 通知服务

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:26:26 24 4
gpt4 key购买 nike

我正在尝试使用 firebase 接收 Android 通知。我已经定义了以下服务。但是服务 MyFirebaseInstanceIDService 是在第一次运行应用程序时运行的。那时我什至没有用户的数据库。我想为用户存储 firebase token ,但首先我想在第一个 Activity 中为用户创建一个条目并在第二个 Activity 中启动服务。这样我就可以存储用户的 token 。

Android list 文件

<service
android:name="in.anamika.anamika.notifications.MyFirebaseMessagingService"
android:permission="com.google.android.c2dm.permission.SEND">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
</intent-filter>
</service>
<service android:name="in.anamika.anamika.notifications.MyFirebaseInstanceIDService">
<intent-filter>
<action android:name="com.google.firebase.INSTANCE_ID_EVENT" />
</intent-filter>
</service>

最佳答案

根据我对您问题的理解,我看到了不止一种解决方案,如下所示:

  1. 如 Nainal 所述,最初您可以将 token 保存到共享偏好稍后当用户成功登录并创建数据库时,您可以存储到表中。

更新后的 API 返回 Task,您可以在其上添加 onSuccess 监听器,当您成功获取 token 时将调用它。

    FirebaseInstanceId.getInstance().getInstanceId().addOnSuccessListener(yourActivity,  
new OnSuccessListener<InstanceIdResult>() {
@Override
public void onSuccess(InstanceIdResult instanceIdResult) {
String deviceToken = instanceIdResult.getToken();
// Do whatever you want with your token now
// i.e. store it on SharedPreferences or DB
// or directly send it to server
}
});
  1. 它会很长,但您可以从 onTokenRefresh()onNewToken() 发送自己的自定义广播,将回调接口(interface)设置为 Activity 的广播接收器并获取通过覆盖回调方法调用 Activity。

注意:FirebaseInstanceIdService 已弃用,我们可以覆盖 onNewToken() 以仅在 FirebaseMessagingService 中获取新的/更新的 token 。
你可以查看this链接。

关于android - 通知服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51123880/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com