我是Android的新手,现在正在查看firebase。在我的应用程序中,可以登录多个手机号码。所以我们正在做的是删除当前令牌
public void homeFragmentDataImplementation() {
Notification notification = new Notification();
kProgressHUD = notification.activityIndicator(mActivity);
new Thread(new Runnable() {
@Override
public void run() {
OkHttpRequest okHttpRequest = new OkHttpRequest();
homeApiResponse = okHttpRequest.getOkHttpRequest(URLS.HOMESCREEN_API +Utility.getDeviceId(mFragment.getContext())); handler.sendEmptyMessage(1);
}}).start();
}
private Handler handler = new Handler(){
@Override
public void handleMessage(Message msg) {
if(msg.what==1) {
Notification notification = new Notification();
notification.scheduleDismiss(kProgressHUD);
swipeContainer.setRefreshing(false);
new JsonReadingModel(mActivity,homeApiResponse);
homeScreenBusinessAdapter.notifyDataSetChanged();
}
}
};
之后,当我使用新号码登录时,会生成新令牌。
所以我的问题就是确切地说哪个事件触发了令牌再生事件。我应该在线程(除了MAIN THREAD)上运行
以上代码行之外的一件事答案 0 :(得分:2)
这是我用于获取firebase令牌的服务
public class FCMInstanceIDListenerService extends FirebaseInstanceIdService {
AppSharedPreferences appSharedPreferences;
@Override
public void onCreate() {
super.onCreate();
String CurrentToken = FirebaseInstanceId.getInstance().getToken();
if (CurrentToken!=null){
Intent intent = new Intent("device_id");
LocalBroadcastManager.getInstance(this).sendBroadcast(intent);
Log.d("token", "Refreshed token: " + CurrentToken);
appSharedPreferences.putString("device_id",CurrentToken);
}
else {
onTokenRefresh();
}
}
public FCMInstanceIDListenerService() {
appSharedPreferences=AppSharedPreferences.getsharedprefInstance(this);
// prefManager = PrefManager.getInstance(this);
}
@Override
public void onTokenRefresh() {
super.onTokenRefresh();
String refreshedToken = FirebaseInstanceId.getInstance().getToken();
Intent intent = new Intent("device_id");
LocalBroadcastManager.getInstance(this).sendBroadcast(intent);
Log.d("token", "Refreshed token: " + refreshedToken);
appSharedPreferences.putString("device_id",refreshedToken);
// prefManager.putString(PrefrenceConstants.KEY_DEVICE_ID, refreshedToken);
}
}
onTokenRefresh()在系统确定令牌时调用 需要刷新。应用程序应调用getToken()并发送 所有应用程序服务器的令牌。
这不会经常调用,键旋转需要它 并处理由于以下原因导致的实例ID更改:
应用删除实例ID
在新设备上恢复应用
用户卸载/重新安装应用
用户清除应用数据
系统将限制所有设备上的刷新事件以避免 使用令牌更新重载应用程序服务器。