生成的IntentService内部空指针异常

时间:2016-06-07 12:52:37

标签: android android-intent intentservice android-annotations

我正在使用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;
                }
    }

1 个答案:

答案 0 :(得分:-2)

你的意图有一个空值。 请改用此代码:

if (intent != null) {
 String action = intent.getAction();
        if (ACTION_LOAD_MY_DATA.equals(action)) {
            super.loadMyData();
            return ;
        }
    }
相关问题