Могу ли я передать ссылку на объект от одного действия к другому в Android? - PullRequest
0 голосов
/ 31 марта 2012

Я использую Intent Service в своей программе. В Intent Service у меня есть поток задач таймера, который запускается каждые 15 минут. Поскольку он запускается в новом потоке, нет другого способа остановить его, кроме как внутри самого потока, что невозможно в моей ситуации. Итак, я хочу иметь возможность передать ссылку на объект таймера из начальной активности в Intent Service. И по этой ссылке я могу запустить или остановить таймер?
Как это сделать?

1 Ответ

2 голосов
/ 31 марта 2012

В Intent Service у меня есть поток задач таймера, который запускается каждые 15 минут.

Это очень плохая идея.

Во-первых, это не будет работать. IntentService отключается, как только onHandleIntent() возвращается. То, что вы действительно делаете, это утечка нить.

Во-вторых, требуется, чтобы этот Service постоянно оставался в памяти, что является анти-паттерном в Android.

Пожалуйста, используйте AlarmManager, чтобы отправлять команды на IntentService каждые 15 минут и избавляться от задачи таймера.

И, делая это, вам больше не нужно беспокоиться о передаче такого рода объекта между действием и службой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...