Я работаю над приложением для 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();
}