我正在使用AndroidAnnotations,我有一些IntentServices。我有时会收到此错误(发生在所有服务上,而不仅仅是下面的那个):
Fatal Exception: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.content.Intent.getAction()' on a null object reference
at xxxx.DataLoaderService_.onHandleIntent(DataLoaderService_.java:51)
at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:65)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.os.HandlerThread.run(HandlerThread.java:61)
但我无法检查Intent是否为null,因为DataLoaderService_
已生成且无法编辑。
我该如何解决这个问题?
编辑:这是如何调用此服务的示例:
DataLoaderService_.intent(MyApplication.getContext()).loadMyData().start();
这是服务(生成):
@Override
public void onHandleIntent(Intent intent) {
DataLoaderService_.super.onHandleIntent(intent);
String action = intent.getAction();
if (ACTION_LOAD_MY_DATA.equals(action)) {
super.loadMyData();
return ;
}
}
public static class IntentBuilder_
extends ServiceIntentBuilder<DataLoaderService_.IntentBuilder_>
{
public DataLoaderService_.IntentBuilder_ loadMyData() {
action(ACTION_LOAD_MY_DATA);
return this;
}
}
答案 0 :(得分:-2)
你的意图有一个空值。 请改用此代码:
if (intent != null) {
String action = intent.getAction();
if (ACTION_LOAD_MY_DATA.equals(action)) {
super.loadMyData();
return ;
}
}