Android 自动生成错误的IntentService默认构造函数
AndroidStudio有一个有用的快捷方式来自动生成所需的构造函数和重写方法(alt+enter) 对于IntentService,Android Studio自动生成以下默认构造函数,该构造函数在AndroidManifest.xml中显示错误Android 自动生成错误的IntentService默认构造函数,android,shortcut,Android,Shortcut,AndroidStudio有一个有用的快捷方式来自动生成所需的构造函数和重写方法(alt+enter) 对于IntentService,Android Studio自动生成以下默认构造函数,该构造函数在AndroidManifest.xml中显示错误 public class MyIntentService extends IntentService { // Auto-generated by IDE public MyIntentService(String name) { su
public class MyIntentService extends IntentService {
// Auto-generated by IDE
public MyIntentService(String name) { super(name); }
// This is the correct default constructor!
// public MyIntentService() { super("MyIntentService"); }
@Override
protected void onHandleIntent(@androidx.annotation.Nullable Intent intent) {
...
}
}
AndroidManifest.xml中的错误为
“…MyIntentService”没有默认构造函数
我知道如何手动更正这一点,但为什么IDE会创建错误的构造函数呢?这是虫子吗?在IDE中是否有纠正此问题的方法?这是一种新方法。我不认为这是一个错误。< /P>
IntentService
是一个抽象类,具有一个构造函数,IntentService(String)
。预期用途是实现子类构造函数调用它,并提供一个对调试有用的名称
另一方面,AndroidService
s必须有一个无参数构造函数,这样框架才能实例化它们。它也适用于IntentService
s
IDE对IntentService一无所知。它只看到一个带有字符串参数的构造函数,并提供生成兼容子类构造函数的功能。另一个工具Android Lint后来检测到清单中声明的服务
没有no-arg构造函数,并发出警告
请注意,在当前的后台执行限制下,您最好使用其他机制,例如JobIntentService
,而不是IntentService
,因为它是不确定的。我不认为这是一个错误。< /P>
IntentService
是一个抽象类,具有一个构造函数,IntentService(String)
。预期用途是实现子类构造函数调用它,并提供一个对调试有用的名称
另一方面,AndroidService
s必须有一个无参数构造函数,这样框架才能实例化它们。它也适用于IntentService
s
IDE对IntentService一无所知。它只看到一个带有字符串参数的构造函数,并提供生成兼容子类构造函数的功能。另一个工具Android Lint后来检测到清单中声明的服务
没有no-arg构造函数,并发出警告
请注意,在当前的后台执行限制下,您最好使用其他机制,例如JobIntentService
,而不是IntentService