当我致电startService()
时,我的应用程序崩溃了。问题是我在控制台中没有收到错误,因此我不知道如何解决此崩溃。
如果有人有潜在客户,我正在寻找解决问题的方法。 我在想,也许由于某种原因我不能从主要活动的onCreate方法启动服务。
我从主要活动的onCreate()方法启动该服务:
serviceIntent = new Intent(this, myIntentService.class);
startService(serviceIntent);
以下是我在myIntentService
类中拥有的唯一代码:
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清单中来解决。
答案 0 :(得分:1)
发生这种情况是因为您没有用于Service的默认构造函数,只需删除该构造函数或添加一个默认的构造函数(无参数),它将神奇地起作用!
答案 1 :(得分:1)
更改:
public myIntentService(String name) {
super(name);
}
收件人:
public myIntentService() {
super("myIntentService");
}