Android 为什么我需要一个服务来读取google Firebase令牌?

Android 为什么我需要一个服务来读取google Firebase令牌?,android,firebase,Android,Firebase,我在MainActivity中使用此代码,该代码未扩展FirebaseInstancedService,以读取google firebase生成的令牌: String token= FirebaseInstanceId.getInstance().getToken(); 但是,根据Firebase文档,我必须创建一个扩展FirebaseInstancedService并在令牌刷新时检索令牌的服务: public class MyFirebaseInstanceIDService extends

我在MainActivity中使用此代码,该代码未扩展FirebaseInstancedService,以读取google firebase生成的令牌:

String token= FirebaseInstanceId.getInstance().getToken();
但是,根据Firebase文档,我必须创建一个扩展FirebaseInstancedService并在令牌刷新时检索令牌的服务:

public class MyFirebaseInstanceIDService extends FirebaseInstanceIdService {
    @Override
    public void onTokenRefresh() {
        String refreshedToken = FirebaseInstanceId.getInstance().getToken();
    }
    }
}

为什么我需要运行服务来读取令牌?从简单活动中读取令牌有哪些限制?

有两件事需要记住

1) 令牌可以随时更改,此时旧令牌将变为无效。您不希望使用无效的令牌,或者依赖它的应用程序功能可能无法工作

2) 当您没有启动活动时,可以刷新令牌。为了响应随时可能发生的令牌刷新,您需要一个服务在事件发生后立即在后台处理该事件