IntentService中的队列大小是否有限制?

Dev*_*hts 3 android intentservice

我不太可能遇到任何可能存在的屋顶,但我可能会向IntentService发送大量意图.

我很想知道你可以发送给IntentService的Intents数量是否有上限?队列有大小限制吗?我在文档中找不到任何关于此的内容.

提前致谢

Jam*_*ken 5

tl;博士号

来自android源码(API 19):

看起来它IntentService只是使用常规LooperHandler绑定到一个线程.

当您使用新意图调用intent服务的start时,它只是将意图作为消息发送给处理程序.

@Override
public void onStart(Intent intent, int startId) {
    Message msg = mServiceHandler.obtainMessage();
    msg.arg1 = startId;
    msg.obj = intent;
    mServiceHandler.sendMessage(msg);
}
Run Code Online (Sandbox Code Playgroud)

处理程序:

private final class ServiceHandler extends Handler {
    public ServiceHandler(Looper looper) {
        super(looper);
    }

    @Override
    public void handleMessage(Message msg) {
        onHandleIntent((Intent)msg.obj);
        stopSelf(msg.arg1);
    }
}
Run Code Online (Sandbox Code Playgroud)

LooperHandler用途有一个MessageQueue不具有可以添加到它的项目的最大数量.