IntentService 在 startService() 上停止应用程序

IntentService stop app on startService()

当我调用 startService() 时,我的应用程序崩溃了。问题是我没有在控制台中收到错误,因此我不知道如何解决此崩溃问题。

如果有人有线索,我正在寻找解决我的问题的方法。 我在想也许出于某种原因我无法从主要 activity 的 onCreate 方法启动服务。

我从main的onCreate()方法启动服务activity:

serviceIntent = new Intent(this, myIntentService.class);
        startService(serviceIntent);

以下是我在myIntentServiceclass中唯一的代码:

 public myIntentService(String name) {
        super(name);
    }

    @Override
    protected void onHandleIntent(@Nullable Intent intent) {

        try {
            Thread.sleep(5000);
        } catch (InterruptedException e) {
            // Restore interrupt status.
            Thread.currentThread().interrupt();
        }

        Log.v("Info", "Service " + this.getClass().getSimpleName() + " received a request");
        //executeRequest();
    }

如果我评论 startService() 行,应用程序会打开而不会崩溃。

我用 this question 检查我的服务是 运行:

Log.v("Info", "Is Service "+ WhichAuthCurrentService.class.getSimpleName() + " running? response: " + isMyServiceRunning(myIntentService.class));

在控制台中写入:

Is Service WhichAuthCurrentService running? response: true

注意我没有实现 onCreate()onStartCommand() 等方法,也没有实现 onDestroy() 并且我将我的服务添加到 AndroidManifest.xml
我发现的所有相关问题都通过正确覆盖这些方法或将服务添加到 Android 清单来解决。

发生这种情况是因为您的服务没有默认构造函数,只需删除构造函数或添加默认构造函数(无参数),它就会神奇地工作!

变化:

 public myIntentService(String name) {
        super(name);
    }

至:

 public myIntentService() {
        super("myIntentService");
    }