Будильник не работает в Android? - PullRequest
0 голосов
/ 18 ноября 2011

Я застреваю с чем-то, что, я думаю, очень тривиально. По сути, я планирую будильник на данный момент в будущем:

Intent contentIntent = new Intent(this, AlarmReceiver.class); 
PendingIntent theappIntent = PendingIntent.getService(Main.this, 0,contentIntent, 0); 
Calendar calendar = Calendar.getInstance();
calendar.set(year, month, day, hour,minute); 
AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE);
am.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), theappIntent); 

работает нормально, когда мобильный постоянно включен. Моя проблема в том, что тревога не срабатывает после перезагрузки мобильного телефона и включается в ожидаемое время. Я что-то пропустил? Должен ли я сделать дополнительную работу, чтобы держать тревогу запланировано после перезагрузки?

Ответы [ 2 ]

3 голосов
/ 18 ноября 2011

Вы должны сбросить будильник, когда устройство загрузится.Вы не можете обнаружить приложение при загрузке устройства и сбросить сигнал тревоги .. ниже приведен код, написанный в манифесте

<receiver android:name=".YourReceiver">
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED" />
            </intent-filter>
</receiver>

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

Также создайте BroadcastReceiver для получения намерения завершения загрузки

 public class YourReceiver extends BroadcastReceiver {


 Context ct;

 @Override
 public void onReceive(Context context, Intent intent) 
 {
    ct=context;
    if(intent.getAction().equals("android.intent.action.BOOT_COMPLETED"))
    {
      // Reset your alarm here
      Intent contentIntent = new Intent(ct, AlarmReceiver.class); 
      PendingIntent theappIntent = PendingIntent.getService(ct, 0,contentIntent, 0); 
      Calendar calendar = Calendar.getInstance();
      calendar.set(year, month, day, hour,minute); 
      AlarmManager am = (AlarmManager) ct.getSystemService(ALARM_SERVICE);
      am.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), theappIntent); 
    }
 }
0 голосов
/ 18 ноября 2011

Вы должны добавить приемник для прослушивания android.intent.action.BOOT_COMPLETED и начать свой сигнал оттуда.

...