我正在尝试同时运行线程。我按照Android开发者网站上的服务指南(http://developer.android.com/guide/topics/fundamentals/services.html)。
我稍微修改了代码,这样就不会只等待5秒钟,而是每秒记录一条消息。
输出是: MSG1 MSG1 MSG1 MSG1 MSG1
问题是我无法弄清楚如何同时运行其中两个线程,因此输出为: msg1 msg2 msg1 msg2 ....
我一直收到msg1 msg1 msg1 msg1 msg1 msg2 msg2 msg2 ...
以下是我的onStartCommand()的代码:
@Override
public int onStartCommand(Intent intent, int flags, final int startId) {
Log.v("testService","onStartCommand()");
new Thread() {
// This method is called when the thread runs
public void run() {
Message msg = mHandler.obtainMessage();
msg.arg1 = startId;
mHandler.sendMessage(msg);
}
}.start();
return START_STICKY;
}
这不应该为每个请求创建一个新线程,以便前一个请求不是阻塞吗?
答案 0 :(得分:0)
它将为处理程序创建一个新的线程发送每个请求,但处理程序的代码将在实例化处理程序的任何线程上执行,而不是发送消息的线程。 Handlers的重点是为线程间通信提供一种简单的方法。