Android 自动生成错误的IntentService默认构造函数

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

AndroidStudio有一个有用的快捷方式来自动生成所需的构造函数和重写方法(alt+enter)

对于IntentService,Android Studio自动生成以下默认构造函数,该构造函数在AndroidManifest.xml中显示错误

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)
。预期用途是实现子类构造函数调用它,并提供一个对调试有用的名称

另一方面,Android
Service
s必须有一个无参数构造函数,这样框架才能实例化它们。它也适用于
IntentService
s

IDE对IntentService一无所知。它只看到一个带有
字符串
参数的构造函数,并提供生成兼容子类构造函数的功能。另一个工具Android Lint后来检测到清单中声明的
服务
没有no-arg构造函数,并发出警告


请注意,在当前的后台执行限制下,您最好使用其他机制,例如
JobIntentService
,而不是
IntentService

,因为它是不确定的。我不认为这是一个错误。< /P>
IntentService
是一个抽象类,具有一个构造函数,
IntentService(String)
。预期用途是实现子类构造函数调用它,并提供一个对调试有用的名称

另一方面,Android
Service
s必须有一个无参数构造函数,这样框架才能实例化它们。它也适用于
IntentService
s

IDE对IntentService一无所知。它只看到一个带有
字符串
参数的构造函数,并提供生成兼容子类构造函数的功能。另一个工具Android Lint后来检测到清单中声明的
服务
没有no-arg构造函数,并发出警告

请注意,在当前的后台执行限制下,您最好使用其他机制,例如
JobIntentService
,而不是
IntentService