意图为空的Android IntentService触发

JY2*_*Y2k 4 android android-intent android-service android-intentservice

我在Crashlytics中看到崩溃:

致命异常:java.lang.NullPointerException:尝试在com.myapp.APKOfferQueueManagerIntentService.onHandleIntent(SourceFile:71)上的空对象引用上调用虚拟方法'int android.content.Intent.getIntExtra(java.lang.String,int)' ),位于android.os.Looper.loop(Looper.java:135)的android.os.Handler.dispatchMessage(Handler.java:102)的android.app.IntentService $ ServiceHandler.handleMessage(IntentService.java:65) .os.HandlerThread.run(HandlerThread.java:61)

用空意图触发IntentService怎么可能?

0X0*_*gar 5

An IntentService可能像其他所有服务一样被停止,但是它将由“系统”重新启动,直到onHandleIntent()完成其工作为止。在这种情况下,文档会intent参数

...如果服务消失后正在重新启动服务,则可能为null

要始终获取原始文件Intent作为参数,请使用

setIntentRedelivery(true);
Run Code Online (Sandbox Code Playgroud)

在的构造函数中IntentService

另请注意

如果发送了多个Intent,则只能保证最新的Intent被重新发送。