Próbuję zaktualizować mój interfejs w FirstActivity
po otrzymaniu powiadomienia, ale jest on mylony z runOnUiThread
, Runnable
i Handler
. Oto, co mam: Używam usługi FirstActivity i NotificationService. Gdy usługa powiadomień ponownie otrzyma powiadomienie, zaktualizuje interfejs użytkownika FirstActivity.Aktualizacja interfejsu użytkownika z usługi (przy użyciu procedury obsługi?)
Mam również inną usługę AlarmService
. Pierwszy aktywny
@Override
public void onResume() {
super.onResume();
//some other code for alarm service
}
NotificationService
//on receiving notification
private void showNotification(String text) {
//Get activity
Class<?> activityClass = null;
try {
activityClass = Class.forName("com.pakage.FirstActivity");
contextActivity = (Activity) activityClass.newInstance();
//Update UI on FirstActivity not working
contextActivity.runOnUiThread(new Runnable() {
public void run()
{
Looper.prepare();
TextView tv = (TextView) contextActivity.findViewById(R.id.notifyTest);
Looper.loop();
}
});
} catch (Exception e) {
e.printStackTrace();
}
//Shows the notification
Notification n = new Notification();
//... etc
}
Wciąż dostaję looper.prepare błąd. Czy muszę umieszczać dodatkowe kody w moim FirstActivity?
czy możesz pokazać nam wiadomości w dzienniku z logcat? Ponadto, jak zadeklarowałeś Looper? –
Otrzymuję komunikat "Nie można utworzyć programu obsługi wewnątrz wątku, który nie wywołał błędu Looper.prepare()". Looper jest zadeklarowany w metodzie 'showNotification' powyżej – newbie