在使用IntentService时,没有定义无参的构造函数。
如下所示。
代码段1:
public class CustomIntentService extends IntentService {
private static final String TAG = CustomIntentService.class.getSimpleName();
static String s = "test";
// public CustomIntentService() {
// super("CustomIntentService");
// }
public CustomIntentService(String name) {
super(name);
Log.i(TAG, "CustomIntentService");
}
@Override
public void setIntentRedelivery(boolean enabled) {
super.setIntentRedelivery(enabled);
Log.i(TAG, "setIntentRedelivery");
}
@Override
public void onCreate() {
super.onCreate();
Log.i(TAG, "onCreate");
}
@Override
public void onStart(Intent intent, int startId) {
super.onStart(intent, startId);
Log.i(TAG, "onStart");
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
return super.onStartCommand(intent, flags, startId);
}
}
这样我们用以下方式使用IntentService的时,就会报如标题所示的错误。
代码段2:
Intent startServiceIntent1 = new Intent();
startServiceIntent1.setClass(this, CustomIntentService.class);
Bundle bundle = new Bundle();
bundle.putString("param", "oper1");
startServiceIntent1.putExtras(bundle);
startService(startServiceIntent1);
解决方法就是将代码段1中被注释掉的部分放开。