【发布时间】:2016-05-23 16:02:50
【问题描述】:
我想在服务中运行多个线程。就像在谷歌文档示例中一样:
http://developer.android.com/guide/components/services.html
但是,因为您自己处理对 onStartCommand() 的每个调用, 您可以同时执行多个请求。这不是这个 示例确实如此,但如果这是您想要的,那么您可以创建一个新的 每个请求的线程并立即运行它们(而不是等待 以完成上一个请求)。
如何同时执行多个请求?
例如,我想要 10 个依赖于 Message.what 的线程。
如何以及在哪里创建这 10 个线程?在OnCreate服务中?
但是OnCreate 在我创建服务时只执行一次。但是如果我想添加线程到服务dynamically 和generate message 取决于intent extras?例如:
Intent intent1 = new Intent(this, SimpleService.class);
intent1.putExtra("what", 1);
Intent intent2 = new Intent(this, SimpleService.class);
intent2.putExtra("what", 2);
...
startService(intent1);
startService(intent2);
...
我应该为每个线程创建 10 个处理程序和 10 个循环器?
谢谢!
【问题讨论】:
-
如果您需要对每个
startService呼叫做出反应,您可以使用onStartCommand。onCreate只被调用一次。目前还不清楚你想要实现什么。 -
多个请求意味着网络调用?
-
@Mustansar Saeed,我的意思是:我收到来自网络的请求以发送联系人并将其发送到服务中,同时发送联系人我收到发送文件的请求,我想使用不同线程的相同服务发送这个文件,同时发送联系人和文件另一个请求可以来等等。 (抱歉回复晚了,但我没有任何关于 cmets 和答案的通知邮件)。
标签: android multithreading service