Я запутался, почему моя деятельность все еще отстает, я использую удаленный сервис, у которого мало методов, и у каждого своя работа, такая как загрузка данных, обработка данных, сравнение данных и т. Д. Он будет работать в фоновом режиме и обновлять данные через определенные промежутки времени и уведомлять пользователя об изменениях через систему уведомлений.
Причина, по которой удаленный сервис, потому что я в конечном итоге добавлю виджет, а сервис должен оставаться запущенным, даже если android убивает активность, поэтому я привязываю его к каждому onPause ().
Но насколько я понимаю, эта часть не вызывает мою проблему.
Но вернемся к моей проблеме ... так что моя активность все еще отстает, когда я запускаю вещи в сервисе и методе handler.post.
вот код:
public class WarnService extends Service {
private Bitmap pic;
private boolean dataUpToDate;
private void loadData(){
//code that downloads new data and sets the dataUpToDate variable
}
private void updateLayer(Bitmap bt){
//code that updates some stuff if downloaded and local data differ
}
private IWarnService.Stub WServiceStub = new IWarnService.Stub() {
@Override
public void refreshData() throws RemoteException {
serviceHandler.post(new Runnable() {
@Override
public void run() {
loadData();
if(!dataUpToDate){
updateLayer(pic);
}
}
});
}
}
}
Также я хотел бы добавить progressDialog, который будет обновляться в updateLayer (...), через Activity - слушатель этого сервиса, но это не работает. Каков наилучший способ обновления progressDialog? Всегда слушатель, обработчик, намерение или что?
Так как мне сделать это правильно?