GSMTaskManager onRunTask вызывает метод MainActivity?
У меня есть приложение, которое MainActivity
имеет метод (называется doUpdate()
) который вызывается нажатием кнопки. Это использует MainActivity
Публичные переменные для доступа к базе данных, выполнения некоторых обновлений и обновления некоторых записей. Это хорошо работает.
Теперь нам нужно автоматизировать это с PeriodicTask
также.
Я создал GCMTaskManager
обслуживание следующим образом:
public class MyPeriodicTaskService extends GcmTaskService {
public MyPeriodicTaskService() {
}
@Override
public int onRunTask(TaskParams taskParams) {
Log.i("MYLOG","Task Running...");
return 0;
}
}
В моей основной деятельности, onCreate()
Я настраиваю PeriodicTask
следующее:
GcmNetworkManager networkManager=GcmNetworkManager.getInstance(this);
PeriodicTask task=new PeriodicTask.Builder()
.setService(MyPeriodicTaskService.class)
.setPeriod(60)
.setFlex(30)
.setRequiresCharging(true)
.setTag("UpdateSchedule")
.build();
networkManager.schedule(task);
Смотря журнал, я знаю, что onRunTask()
периодически срабатывает, как я и надеялся.
Теперь мне нужно позвонить MainActivity
метод... doUpdate()
, Потому что этот метод объявлен PUBLIC
VOID
и не STATIC
Я не могу позвонить из службы doRunTask()
, Если я попытаюсь сделать это STATIC
PUBLIC
VOID
тогда MainActivity
переменные не могут быть доступны должным образом по мере необходимости для внутренних этапов обработки.
Как мне обойти это... любые рекомендации?