2011-04-11 11 views
4

기기가 켜져있을 때 안드로이드에서 알림을 설정하도록 알람을 설정했습니다. 그러나 장치를 껐다가 다시 켜면 알람이 작동하지 않습니다. 너희들이이 문제를 어떻게 풀 수 있을지 제안 해 줄 수 있니?기기가 꺼지고 다시 켜질 때 안드로이드에서 알람이 작동하지 않음

내 코드

Intent myIntent = new Intent(getApplicationContext(), serviceclass.class); 
PendingIntent pendingIntent = PendingIntent.getService(getApplicationContext(), 
    CONST+id, myIntent, PendingIntent.FLAG_UPDATE_CURRENT); 

Calendar calender = Calendar.getInstance(); 
calender.setTimeInMillis(System.currentTimeMillis()); 
calender.set(Calendar.HOUR_OF_DAY, hours); 
calender.set(Calendar.MINUTE, ireminder.getMin()); 
calender.set(Calendar.SECOND, 0); 
calender.set(Calendar.MILLISECOND, 0); 
calender.set(Calendar.DAY_OF_WEEK, day); 

alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, 

calender.getTimeInMillis(), 7 * AlarmManager.INTERVAL_DAY, pendingIntent);     

답변

4

경보가 재부팅 지워집니다, 다음과 같습니다. 당신이 할 수있는 일

  1. 이 DB를 테이블에 재부팅시 REBOOT_COMPLETED - 이벤트
  2. 에 대한
  3. 레지스터 알람 정보를 유지 배경이 재 등록 경보 스레드를 시작합니다. 알람 시간을 올바르게 계산했는지 확인하십시오.

참조 API : ". 장치가 잠 (그리고 그들은 그 시간 동안 꺼 경우 선택적으로 장치를 깨울 수)하지만 끄고 재부팅하면 삭제됩니다 동안 등록 된 경보가 유지됩니다" - http://developer.android.com/reference/android/app/AlarmManager.html

1

는 활동 내부 매니페스트

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

내부

public class OnBootReceiver extends BroadcastReceiver { 

    @Override 
    public void onReceive(Context context, Intent intent) { 
     // TODO Auto-generated method stub 
     mgr.setRepeating(AlarmManager.RTC_WAKEUP, 
     SystemClock.currentThreadTimeMillis(), AlarmManager.INTERVAL_FIFTEEN_MINUTES, 
        pi); 

    } 

} 

OnBootReceiver 클래스를 만듭니다

sendBroadcast(new Intent(this, OnBootReceiver.class)); 
관련 문제