我对GcmListenerService有疑问。
我有一个接收GCM消息的服务:
public class MyGcmListener extends GcmListenerService {
@Override
public void onMessageReceived(String from, Bundle data) {
Log.i("mytag", "message received");
....
}
}
通常我的应用程序的主要活动开始它:
context.startService(new Intent(context, MyGcmListener.class));
但似乎有时会创建两个服务对象并且会产生一个重复的日志消息:
01-07 17:15:02.090 3655-3668/package: message received
01-07 17:15:02.090 3655-3668/package: message received
因此,当我从主要活动启动服务时,我想尝试该服务已经处于活动状态:
if (!MyGcmService.isActive())
context.startService(new Intent(context, MyGcmListener.class));
其中一个解决方案可能是制作一个变量boolean active
,可以在true
方法中设置onStartCommand()
,在false
中设置onDestroy()
(如{ {3}})。但是GcmListenerService没有onStartCommand()
方法。
那我该如何实现呢?已经看过这样的问题了?