2012-02-19 95 views
1

以下工作正常,當設備沒有睡着,但如果我關閉設備 - 它不會在指定的時間醒來。android:alarm not wake up up

我可能錯過了什麼嗎?在此先感謝您的幫助。

onReiceive

@Override 
public void onReceive(Context context, Intent intent) {   
    WakeLocker.acquire(context); 

     pk = Integer.parseInt(intent.getExtras().get("pk").toString());  
     Intent intent2 = new Intent(context,ALERT.class); 
     intent2.putExtra("pk", pk); 
     intent2.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
     context.startActivity(intent2);   

    WakeLocker.release(); 
}} 

WakeLocker

public static void acquire(Context ctx) { 

if (wakeLock != null) wakeLock.release(); 

PowerManager pm = (PowerManager) ctx.getSystemService(Context.POWER_SERVICE); 
    wakeLock = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP | 
      PowerManager.ON_AFTER_RELEASE, "my tag"); 
    wakeLock.acquire(); 
} 
public static void release() { 
    if (wakeLock != null) wakeLock.release(); wakeLock = null; 
} 
} 

Setalarm

Intent intent = new Intent(SETALARM.this, ALARMRECEIVER.class); 
    intent.putExtra("pk", pk); 
    sender = PendingIntent.getBroadcast(this, pk, intent, PendingIntent.FLAG_CANCEL_CURRENT); 
    am = (AlarmManager) getSystemService(ALARM_SERVICE); 
    am.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),60000, sender); 

權限

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

回答

-1

基於Android開發人員,已經有人說過。

設備處於睡眠狀態時(如果在此期間關閉設備時可以選擇性喚醒設備),將保留註冊的警報,但是如果關閉並重新啓動,則會被清除。

因此,如果設備關閉,您的報警管理器已被清除。

您可以參考本網站。 http://developer.android.com/reference/android/app/AlarmManager.html