Запуск службы Android при загрузке и PreferenceChange - PullRequest
0 голосов
/ 30 апреля 2011

Как выглядит мой код сегодня, я периодически отправляю сигнал тревоги (?), Используя AlarmManager, получаемый AlarmReceiver extends BroadcastReceiver, который, в свою очередь, запускает Сервис.Служба обновляется и заканчивается на stopSelf().IMO - это лучший способ периодически выполнять задачу без постоянного запуска службы.Правильно?

Проблема с этим кодом заключается в том, что вся цепочка событий инициируется onSharedPreferenceChanged().Я (изначально) думал, что это хорошая идея, так как все обновление включено пользователем в SharedPreferences.Теперь я пришел к выводу, что это на самом деле не очень хорошо, и что мне нужно запустить AlarmManager / AlarmReceiver / Service / независимо от того, что и onPreferenceChange, но и при загрузке.

Я сделал несколькопоиск, но все, кажется, хотят запустить службу при загрузке.Насколько я понимаю, мне просто нужно запустить AlarmManager, который затем запустит Службу (при необходимости и только периодически).

Пожалуйста, помогите мне, во-первых, разобраться с этим и, во-вторых, кодировать его!Заранее спасибо!

1 Ответ

3 голосов
/ 30 апреля 2011

Затем создайте и зарегистрируйте BroadcastReceiver, где вы будете выполнять AlarmManager материал:

public class YourBootReceiver extends BroadcastReceiver{
    @Override
    public void onReceive(Context context, Intent intent) {
        // do the AlarmManager here
    }
}

Затем в своем манифесте:

<application>
    ... other stuff
    <receiver android:name=".YourBootReceiver">
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED"/>
        </intent-filter>
    </receiver>
</application>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...