나는 백그라운드 작업자 스레드를 사용하는 안드로이드 애플 리케이션에서 일하고 있습니다. 나는 활동에서 스레드에게 메시지를 보낼 수 있어야하지만, 나는 그것을 이해할 수 없다.안드로이드 쓰레드 및 메시징
나는 하나의 활동을 가지고 있으며 백그라운드에서 하나의 스레드가 작동합니다. 스레드를 시작하고 필요한 경우 메시지 (인수, 개체 등)를 보낼 수 있어야합니다. 쓰레드에서 액티비티로 메시지를 보내는 것을 마스터하고 (액티비티의 핸들러를 쓰레드에 전달하고 메시지를 보내기 위해), 액티비티로부터 쓰레드로 메시지를 보내려고 할 때마다 애플리케이션이 다운된다.
저는 온라인에서 발견 한 좋은 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/andro-to-loopers-and-handlers/ – Mikhaili
@Mikhaili 전에이 파일을 보았지만 훌륭한 튜토리얼이지만 메시징은 전혀 다루지 않습니다. – tfrederick74656