我有一个这样创建的服务:
<service
android:name="com.myFirebaseMessagingService">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT"/>
</intent-filter>
</service>
然后我实现onBind
这样的:
private final IBinder mBinder = new LocalBinder();
private myListener mListener;
public class LocalBinder extends Binder {
LocalService getService() {
return LocalService.this;
}
}
public void setListener(myListener listener) {
mListener = listener;
}
@Override
public IBinder onBind(Intent intent) {
return mBinder;
}
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
if (mListener != null) mListener.onMessageReceived(remoteMessage);
}
这很简单:Activity 绑定到 Service 并设置一个监听器。当服务接收到消息时,它只是触发侦听器
现在最大的问题是:如果活动突然崩溃会发生什么? 在那种情况下mListener
会指向不存在的东西,不是吗?
如何在调用之前mListener.onMessageReceived(remoteMessage)
检查绑定的 Activity 是否还活着?