IntentService 在 startService() 上停止应用程序
IntentService stop app on startService()
当我调用 startService()
时,我的应用程序崩溃了。问题是我没有在控制台中收到错误,因此我不知道如何解决此崩溃问题。
如果有人有线索,我正在寻找解决我的问题的方法。
我在想也许出于某种原因我无法从主要 activity 的 onCreate 方法启动服务。
我从main的onCreate()方法启动服务activity:
serviceIntent = new Intent(this, myIntentService.class);
startService(serviceIntent);
以下是我在myIntentService
class中唯一的代码:
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");
}
当我调用 startService()
时,我的应用程序崩溃了。问题是我没有在控制台中收到错误,因此我不知道如何解决此崩溃问题。
如果有人有线索,我正在寻找解决我的问题的方法。 我在想也许出于某种原因我无法从主要 activity 的 onCreate 方法启动服务。
我从main的onCreate()方法启动服务activity:
serviceIntent = new Intent(this, myIntentService.class);
startService(serviceIntent);
以下是我在myIntentService
class中唯一的代码:
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");
}