私はmin API 19を使い、Android 6.0で実行しています。私はsetExact(5秒ごとに実行したい)でアラームを作成しました。それをテストするために私はこの(私はフラグメント内にそれを作成した)行った:setExact()は時刻(前)に起動しません
Intent intent = new Intent(getActivity(), AlarmReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(getActivity(), 0, intent, 0);
AlarmManager alarmManager = (AlarmManager) (getActivity().getSystemService(getContext().ALARM_SERVICE));
alarmManager.setExact(AlarmManager.RTC_WAKEUP, 5000, pendingIntent);
をそして、それは呼び出します。私はトーストが2または3秒後に表示されるボタンをクリックしたときに
public class AlarmReceiver extends WakefulBroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context, "Test"+SPreferences.getCountedSample(context), Toast.LENGTH_SHORT).show();
}
}
をしかし。
トリガー時間を5000から10000または0に変更した場合、トーストメッセージを表示するには(ボタンをクリックしてから(アラームを作成してから10秒後))時間は変わりません。ボタンをクリックしてから2〜3秒後には、常にブロードキャストが呼び出されます。
なぜトリガーが機能しないのですか?