-
FEATURED COMPONENTS
First time here? Check out the FAQ!
Hi everyone, I have questions on update ui by passing value from thread. These thread run every 5 second to update value on UI. I can not find the solution for this problem. Here is my sample code. If I use BindUtils.postNotifyChange then these thread will stop working and @NotifyChange is not update value to UI too.
Pls help.
@Getter
@Setter
String emailBadgeNumber;
@Getter
@Setter
String requestBadgeNumber;
@NotifyChange({"emailBadgeNumber", "requestBadgeNumber"})
private void updateBadgeNumber() {
ScheduledExecutorService service = Executors.newScheduledThreadPool(2);
Runnable task1 = () -> {
// get data from database and pass value to UI.
emailBadgeNumber = emails.isEmpty() ? 0 : emails.size();
// BindUtils.postNotifyChange(this, "emailBadgeNumber");
};
Runnable task2 = () -> {
// get data from database and pass value to UI.
requestBadgeNumber = requests.isEmpty() ? 0 : requests.size();
// BindUtils.postNotifyChange(this, "requestBadgeNumber");
};
service.scheduleAtFixedRate(task1, 0, 5, TimeUnit.SECONDS);
service.scheduleAtFixedRate(task2, 0, 5, TimeUnit.SECONDS);
}
Asked: 2023-07-31 10:26:46 +0800
Seen: 7 times
Last updated: Aug 01