Интересно ми е как е възможно да се напише прост клас Android Handler, използвайки само чиста Java, за да се изпращат сигнали от една нишка в друга?
Видях изходния код: http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.1_r2/android/os/Handler.java
Но как например да напишете клас (клас на манипулатор), който може да изпраща например стойност на int от една нишка в друга (без да използвате данни за споделяне (като в Android Handler?))?
Отговори:
6 за отговор № 1Ако имате нишката по същия метод като обработващия получаване на съобщението, можете да направите така:
final Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
// do something
}
}
final Thread th = new Thread() {
public void run() {
// do something than send an integer - x in our case
int x = 0;
final Message msg = Message.obtain(handler, x, null);
handler.dispatchMessage(msg);
}
};
th.start();
Ако вашият манипулатор не може да бъде достъпен директно от нишката, отколкото да създаде клас, удължаващ нишката и да предаде манипулатора на конструктора на класа.