如何从 FirebaseMessagingService 的 onNewToken() 访问我的布局?
Posted
技术标签:
【中文标题】如何从 FirebaseMessagingService 的 onNewToken() 访问我的布局?【英文标题】:How to access my layout from onNewToken() of FirebaseMessagingService? 【发布时间】:2022-01-22 12:13:28 【问题描述】:首先,我是 android 开发的一个很棒的新手(而且英语不是很完美)。
从 FirebaseMessagingService 类的 onNewToken() 方法访问我的布局(简单的 TextView,这里命名为“文本”)的最简单方法是什么? 我看到我们经常谈论广播接收器,但我也读到它已被弃用。 当然我的 findViewById() 有错误。
public class MyFirebaseMessagingService extends FirebaseMessagingService
@Override
public void onNewToken(String device_token)
@SuppressLint("HardwareIds") String device_id = Settings.Secure.getString(getContentResolver(), Settings.Secure.ANDROID_ID);
DeviceService service = DeviceService.retrofit.create(DeviceService.class);
Call<String> call = service.insertToken(device_token,device_id);
call.enqueue(new Callback<String>()
@Override
public void onResponse(Call<String> call, Response<String> response)
if (response.isSuccessful())
text.setText("Token registered");
else
text.setText("Token registering error");
@Override
public void onFailure(Call<String> call, Throwable t)
text.setText("Token not transmitted");
);
【问题讨论】:
【参考方案1】:BroadcastReceiver 未弃用,但 LocalBroadcastManager 已弃用。
你可以在没有LocalBroadcastManager
的情况下注册接收者,使用Context.registerReceiver()
。
并将您的响应结果放入SharedPreferences,并在您的Activity
、Fragment
或ViewModel
中使用SharedPreferences
的值作为LiveData 或Flow。
或者,使用带有RxJava 或Flow 的事件总线
【讨论】:
谢谢。不确定我能用它做任何事情,但我会尝试。以上是关于如何从 FirebaseMessagingService 的 onNewToken() 访问我的布局?的主要内容,如果未能解决你的问题,请参考以下文章
如何将数据从回收器适配器发送到片段 |如何从 recyclerview 适配器调用片段函数
如何从服务器获取和设置 android 中的 API(从服务器获取 int 值)?如何绑定和实现这个