これは、アラームを設定するための私のコードです。
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
ですか?私は一生懸命努力しましたが、解決策を見つけることができませんでした。