Dears. Ich studiere Android-Entwicklung und ich bin auf Handlers/Loopers und MessageQueue fest. Laut Dokumentation, Handlers sind in der Lage nachrichts und Post (Runnable) zu einem anderen Thread, also habe ich versucht, die folgenden:Verwenden von Handler zu sendMessage in Android
Ich habe zwei Java-Dateien, eine für eine andere Klasse:
public class MyThread extends Thread {
public MyThread(String argument) {
//save the arguments to some member attribute
}
@Override
public void run() {
//calculate something
String result = doSomething();
//now I need send this result to the MainActivity.
//Ive tried this
Bundle bundle = new Bundle();
bundle.putString("someKey", result);
Message msg = Message.obtain();
msg.what = 2;
msg.setData(bundle);
//I hope this could access the Main Thread message queue
new Handler(Looper.getMainLooper()).sendMessage(msg);
}
}
und meine Haupttätigkeit:
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstance) {
//super and inflate the layout
//use findViewById to get some View
}
//I think this could access the same MessageQueue as the thread did
private Handler mHandler = new Hander() {
@Override
public void handleMessage(Message msg) {
if (msg.what == 2) {
//I thought the sendMessage invoked inside the Thread
//would go here, where I can process the bundle and
//set some data to a View element and not only Thread change
}
}
}
}
Da konnte ich nicht verstehen, wie es funktioniert wirklich die Beispiele und die Dokumentation zu lesen, würde ich eine einfache Erklärung mag in wie kann ich einige Daten aus einem Thema bekommen (was nicht weiß, die MainActivity) angezeigt werden o Ein Blick in Aktivität oder Fragment.
Dank
von wo Sie gestartet MyThread – Rahul
Derzeit von einer Schaltfläche onClick innerhalb MainActivity. –