다음과 같은 일회성 알람을 트리거하고 싶습니다. 기본적으로 https://developer.android.com/training/scheduling/alarms.html (두 번째 ELAPSED_REALTIME_WAKEUP 예)의 복제본입니다. 나는 조각에있는 버튼을 누르면 AlarmManager 한 번만 알람이 울리지 않습니다.
public MuteReceiver() {
Log.d("MuteReceiver", "constructed");
}
@Override
public void onReceive(Context context, Intent intent) {
final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
boolean started = prefs.getBoolean(MuteService.STARTED, false);
Log.d("MuteReceiver", "Started=" + started);
}
, 톱이 같다
@Override
public void onClick(View v) {
Intent intent;
intent = new Intent(this.getActivity(), MuteReceiver.class);
AlarmManager alm = (AlarmManager)(this.getActivity().getSystemService(Context.ALARM_SERVICE));
PendingIntent alarmIntent = PendingIntent.getBroadcast(getActivity(), 0, intent, 0);
alm.set(AlarmManager.ELAPSED_REALTIME_WAKEUP,
SystemClock.elapsedRealtime() + 60*1000,
alarmIntent);
Log.d("MainActivity", "alarm set");
}
공용 클래스 MuteReceiver가 브로드 캐스트 리시버를 확장 :
이 공공 정적 클래스 PlaceholderFragment 내부는 조각이 View.OnClickListener 구현 확장 로그 메시지 "알람 설정",하지만 1 분 후 (그리고 훨씬 나중에) MuteReceiver가 생성되거나 MuteReceiver가 시작된 로그가 표시되지 않음 (onReceive에서)
매니페스트에 MuteReceiver를 등록하셨습니까? – Shaishav