잘 에뮬레이터에서가 아니라 작업이 설정 알람에 대한 내 코드입니다 :알람 관리기는 실제 장치
public void SetAlarm(Context context, int tag, long time){
AlarmManager am=(AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
Intent i = new Intent(context, Alarm.class);
i.putExtra("position", tag);
PendingIntent pi = PendingIntent.getBroadcast(context, tag, i, PendingIntent.FLAG_CANCEL_CURRENT);
am.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis()+ time, pi); // Millisec * Second * Minute
}
이 내 onRecieve 메도입니다 :
public void onReceive(final Context context, Intent intent){
PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK, "my wak up lo");
wl.acquire();
position = intent.getIntExtra("position", -1);
new PostManager(context, position);
wl.release();
}
이 에뮬레이터 잘 노력하고 있습니다. 동시에 에뮬레이터와 실제 장치에서 24 시간 후에 트리거 할 알람을 설정합니다. 작업은 에뮬레이터에서 제대로 수행되지만 실제 장치에서는 수행되지 않습니다. 이 문제가 PowerManager.FULL_WAKE_LOCK
또는 다른 이유로 발생합니까? 나는 열심히 노력했지만 모든 해결책을 찾지 못했습니다.
'setAlarm()'메소드에서'time' 변수의 값이 올바른지 확실합니까? 일부 디버그 로깅을 추가하고 logcat을 점검하여 알람이 실제로 있어야한다고 생각되는 시간에 설정되는지 확인하십시오. –
@DavidWasser :'time'은 에뮬레이터와 실제 장치에 알람을 설정했기 때문에 정확합니다. 4 시간 후에 경보가 울려 야합니다. 에뮬레이터에서 트리거했지만 실제 장치에서는 트리거되지 않습니다. 실제 장치 알람에서 나는 4 시간 미만의 알람을 설정한다. 내 경보가 내 장치를 잠에서 깨울 수 없다고 생각합니다. – Shoshi
나는'PowerManager.FULL_WAKE_LOCK' 대신'PowerManager.PARTIAL_WAKE_LOCK'을 시도했지만 작동하지 않습니다. – Shoshi