Для тестирования я сделал услугу, которая подает звуковой сигнал каждую 1 минуту.(Пока нет клиент-серверного интерфейса).Он звучит нормально, когда экран включен, но когда он переходит в режим сна, звуковой сигнал прекращается.
Я создаю приложение, которое должно периодически запрашивать у сервера что-то.
Для этого,Я пытаюсь создать службу, которая будет постоянно работать в фоновом режиме, опрашивать сервер каждые 1 минуту, а затем на основе ответа от сервера будет генерировать уведомление панели задач.
У меня есть тестовое действиес двумя кнопками, 1 для запуска и другой для остановки службы.И один класс обслуживания с именем S_PS_PollService
setOnClickListener кнопки «Начать активность» содержит:
Thread pollServiceThread = new Thread() {
public void run() {
startService(new Intent(MM_MainMenu.this,
S_PS_PollService.class));
}
};
pollServiceThread.start();
Кнопка «Остановить активность» просто имеет:
stopService(new Intent(MM_MainMenu.this, S_PS_PollService.class));
Следующийявляются методами из класса S_PS_PollService:
public void onCreate() {
pollSound = MediaPlayer.create(this, R.raw.chirp);
alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
Intent myIntent = new Intent(this, S_PS_PollService.class);
pendingIntent = PendingIntent.getService(this, 0, myIntent, 0);
// for wake lock
pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "My Tag")
// for calendar
calendar = Calendar.getInstance();
}
Onstart:
public void onStart(Intent intent, int startId) {
super.onStart(intent, startId);
wl.acquire();
pollSound.start();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.add(Calendar.MILLISECOND, 60000);
alarmManager.set(AlarmManager.RTC_WAKEUP,
calendar.getTimeInMillis(), pendingIntent);
wl.release();
}
Всякий раз, когда срабатывает сигнал тревоги, вызывается метод onStart (), выдающий звуковой сигнал и устанавливающий новый сигнал тревоги.Но он работает только при включенном экране.
Я пытался набрать https://github.com/commonsguy/cwac-wakeful, но не получил его.Относительно новичок в Android ...
Пожалуйста, помогите мне, я очень отчаялся :) Спасибо,!