2013-10-12 1 views
0

У меня есть приложение, которое заботится о некоторых функциях молчания, но я не могу заставить его работать, когда телефон спит и не подключен к компьютеру. Все работает нормально, когда экран включен, но он перестает работать, когда телефон спит. Любая идея, что я делаю неправильно? Я проверил здесь 100 других сообщений, но я просто не могу определить свою проблему.BroadcastReciever не стреляет, когда телефон спит

Мой сигнализации менеджер, который делает намерение:

Intent intent2 = new Intent(this, Silence.class); 
PendingIntent pendingIntent2 = PendingIntent.getBroadcast(this, 1000 + id, intent2, PendingIntent.FLAG_UPDATE_CURRENT); 
AlarmManager am2 = (AlarmManager)getSystemService(Activity.ALARM_SERVICE); 
am2.setRepeating(AlarmManager.RTC_WAKEUP, cal2.getTimeInMillis(), AlarmManager.INTERVAL_DAY * 7, pendingIntent2); 

Broadcast Ресивер:

public class MainSilenceCatcherVibrate extends BroadcastReceiver { 

@Override 
public void onReceive(Context context, Intent intent1) { 
    WakeLocker.acquire(context); 
    System.out.println("test"); 
    WakeLocker.release(); 
    } 
} 

Manifest использования:

<uses-permission android:name="android.permission.WAKE_LOCK" /> 
<receiver android:name=".Silence"></receiver> 
<activity android:name=".ContactActivity"></activity> 

ответ

0

я просто не могу определить мою проблему

Ваше мероприятие произойдет один раз сразу, а затем снова не на неделю (AlarmManager.INTERVAL_DAY * 7,). Возможно, вы не дождались недели.

Обратите внимание, что здесь не требуется WakeLocker - если все ваши работы указаны в onReceive(), система проведет для вас WakeLock. Если у вас есть работа, которая займет больше миллисекунды или около того, вы не захотите делать это в onReceive(), но в этом случае я бы recommend WakefulBroadcastReceiver или my WakefulIntentService, перевернув ваше собственное решение WakeLock.

+0

Я зашел в свое приложение и указал, что он должен выстрелить 1 мин из «сейчас» (относительно того, когда я тестирую). И когда экран включен или я подключен для отладки, тогда нет проблем. Проблема возникает, когда я отцепляюсь от компьютера (так что он действительно спит), поскольку он, судя по всему, приводит меня в тихий режим, вместо того, чтобы что-то печатать. Он меня отключает, когда я поворачиваю экран вручную, а не раньше (и даже если я использую PowerManager.FULL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, экран не загорается, когда он не подключен к компьютеру). – Reaver

+0

@ user2523881: Используйте ** 'adb shell dumpsys alarm' **, чтобы убедиться, что ваш будильник настроен правильно. Если вы находитесь на SONY Xperia, который предлагает режим STAMINA, отключите это или добавьте приложение в белый список. – CommonsWare

+0

Спасибо за отзыв о режиме STAMINA. Как оказалось, у меня есть Sony Xperia, и оптимизация батареи Xperia делает мое приложение неспособным получить трансляцию. – Reaver