Jak powiadomić o aktywności, gdy zmienne GlobalVariables są zmieniane
Mam aplikację na Androida, która jest podłączona do komputera za pomocą kabla USB. Używam klasy TCPServer do wysyłania wiadomości i słuchania. Na przykład:
Kiedy wysyłam wiadomość taką jak:żądanie: x
Dostaję odpowiedź:odpowiedź: x: 55
Muszę wprowadzić zmiany w mojej aktywności zgodnie z otrzymaną odpowiedzią. W tej chwili tymczasowo rozwiązałem problem, przekazując obiekt aktywności i klasy aktywności konstruktorowi TCPServer
public TCPServer(int portNum, Activity activity, IntroActivity ia) {
super();
port = portNum;
this.activity = activity;
this.ia = ia;
}
Następnie po otrzymaniu odpowiedzi:
void updateButton(final int color, final String txt) {
activity.runOnUiThread(new Runnable() {
public void run() {
ia.getConnectionButton().setBackgroundColor(color);
ia.getConnectionButton().setText(txt);
}
});
}
Jak widać, nie jest to w ogóle skuteczne. Muszę jakoś powiadomić o aktywności, gdy otrzymana zostanie odpowiednia zmienna. Używam klasy dla zmiennych globalnych i zmieniam te zmienne statyczne po nasłuchiwaniu (), jednak mam problemy z powiadamianiem o aktywności.