2012-02-19 64 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