1

我正在学习android,遇到了一个例子

public static class A extends IntentService {
    public A() {
        super("AppWidget$A");
    }
}

有人可以告诉我为什么我们必须显式调用超类(IntentService)的构造函数吗?参数字符串是什么意思?

4

2 回答 2

3

它仅用于调试。下面是使用它的 IntentService 源代码的一部分:

public abstract class IntentService extends Service {

    ...
    private String mName;
    ...

    /**
     * Creates an IntentService.  Invoked by your subclass's constructor.
     *
     * @param name Used to name the worker thread, important only for debugging.
     */
    public IntentService(String name) {
        super();
        mName = name;
    }

    ...

    @Override
    public void onCreate() {
        super.onCreate();
        HandlerThread thread = new HandlerThread("IntentService[" + mName + "]");
        thread.start();

        mServiceLooper = thread.getLooper();
        mServiceHandler = new ServiceHandler(mServiceLooper);
    }

    ...
}
于 2012-06-06T11:36:44.997 回答
0

IntentService 有一个带有字符串参数“name”的构造函数。我发现它的唯一用途是为 IntentService 命名工作线程。这个线程被命名为 IntentService [name]。

于 2015-11-17T06:15:54.013 回答