Я использую Alarm Manager
для обновления виджета с Service
. У меня два разных вопроса.
Первый вопрос :Я звоню в службу с намерением Alarm Manager. Вот так:
alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
Intent i = new Intent(context, MyService.class);
pi = PendingIntent.getService(context, 0, i, PendingIntent.FLAG_UPDATE_CURRENT);
context.startService(new Intent(context, MyService.class));
Long repeat = Long.parseLong(prefs.getString("update_preference", "600"));
alarmManager.setInexactRepeating(AlarmManager.RTC_WAKEUP, Calendar.getInstance().getTimeInMillis(), 1000*repeat, pi);
Это неправильно?
Выглядит и работает правильно. Но когда я просмотрел работающие сервисы, я не вижу имени своего сервиса в списке. Возможно, он не работает как отдельная/отдельная служба. Просто увидел имя приложения (не как службу ). Я не уверен, как разделить или это имеет значение?
Другой вопрос :В течение долгого времени запущенное приложение, управляющее обновлением виджетов, закрывается как-то (вручную или тасккиллером ). Конечно, Alarm Manager
остановится, и функции виджета тоже остановятся. Например, нажатие кнопки.
Но Twitter решил эту проблему. Пока виджет активен, если я закрою основное приложение (Twitter )-, которое управляет виджетом -, чем щелкну виджет, каким-то образом виджет вызовет приложение, и оно запустится снова. Так что кнопки работают нормально. Как это возможно?
Будем признательны за любую помощь.