我不太可能触及可能存在的任何屋顶,但有可能我会向IntentService发送大量意图。IntentService中的队列大小是否有限制?
我很想知道是否有多少Intents可以发送到IntentService的上限?队列有大小限制吗?我在文档中找不到任何关于此的内容。
在此先感谢
我不太可能触及可能存在的任何屋顶,但有可能我会向IntentService发送大量意图。IntentService中的队列大小是否有限制?
我很想知道是否有多少Intents可以发送到IntentService的上限?队列有大小限制吗?我在文档中找不到任何关于此的内容。
在此先感谢
TL; DR编号
从android源码(API 19):
它看起来像IntentService
只使用一个普通Looper
和Handler
绑一个线程。
当您使用新的意图调用intent服务的start时,它只是将意图发送给处理程序作为消息。
@Override
public void onStart(Intent intent, int startId) {
Message msg = mServiceHandler.obtainMessage();
msg.arg1 = startId;
msg.obj = intent;
mServiceHandler.sendMessage(msg);
}
的处理程序:
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);
}
}
该Handler
用途有MessageQueue
不具有可以添加到它的项目的最大数量的Looper
。
在理论上没有限制,但应用程序可能会耗尽取决于数据的大小,内存被传递。
请务必阅读列克的回答也。你总是系统资源有限。知道看起来像什么会很有趣。 Handler后面的队列结构是什么?也许是它的限制。 – Nick