onStartCommand(Intent, int, int)除了系统通过诸如START_STICKY?之类的标志重新启动服务之外,传递给它的Intent是否还有其他原因是NULL ?
此外,当系统重新启动服务时,该Intent.getAction()方法有时返回NULL ... Intent不仅仅是NULLgetAction()
我也在这里问过,但还没有得到答案.
UPDATE:马克·墨菲聊天后,他建议我返回START_REDELIVER_INTENT的onStartCommand()回调在我的服务,而不是START_STICKY使整个意图在重新启动发送.
我最初没有这样做,因为我担心如果服务试图做某事,那么在服务重新启动的那个中间......它会认识到它开始做那件事吗?我想这是逻辑我需要负责:)
我的Android应用程序崩溃,这是logcat: -
java.lang.NullPointerException
at com.google.android.gcm.GCMBaseIntentService.onHandleIntent(GCMBaseIntentService.java:194)
at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:65)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.os.HandlerThread.run(HandlerThread.java:60)
Run Code Online (Sandbox Code Playgroud)
我查看了android gcm r3源码,发现onHandleIntent()中的参数intent为null.
这甚至可能吗?怎么解决?
(我知道Service.onStartCopmmand返回时可以看到null意图,START_STICKY
但IntentService.onStartCommand不会使用START_STICKY.)