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(), Потому что этот метод объявлен PUBLICVOID и не STATICЯ не могу позвонить из службы doRunTask(), Если я попытаюсь сделать это STATICPUBLICVOID тогда MainActivity переменные не могут быть доступны должным образом по мере необходимости для внутренних этапов обработки.

Как мне обойти это... любые рекомендации?

0 ответов

Другие вопросы по тегам