我正在使用使用后台工作线程的Android应用程序。我需要能够将消息发送到活动的线程,但我无法弄清楚。Android线程和消息传递
我有一个活动,一个线程在后台工作。我想要启动线程并能够在需要时将消息(参数,对象等)发送给它。我已经掌握了从线程向活动发送消息的方式(通过将活动的处理程序传递给线程,并使用它发送消息),但每当我尝试将活动的消息发送到线程时,应用程序都会崩溃。
我试过了一个很好的10-12教程,我在网上找到了,所有这些教程似乎都有不同的做事方式,但我仍然没有得到它的正确工作。有人能指点我正确的方向吗?
一个例子简单的活动:
import android.os.Bundle;
import android.app.Activity;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savesInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
private void doWork() {
Worker worker = new Worker();
worker.start();
worker.handler.sendEmptyMessage(0);
}
}
一个例子简单的线程:
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
import android.util.Log;
public class Worker extends Thread {
public Handler handler;
public void run() {
Looper.prepare();
handler = new Handler() {
public void handleMessage(Message msg) {
Log.d("Worker.run()", "Got message saying " + msg.what);
}
};
Looper.loop();
}
好教程http://mindtherobot.com/blog/159/android-guts-intro-to-loopers-and-handlers/ – Mikhaili
@Mikhaili我以前见过这个,这是一个很好的教程,但它根本不包括消息传递。 – tfrederick74656