2012-10-03 2 views
3

날짜 선택 도구를 사용하여 설정 한 특정 날짜 및 시간에 대한 알림을 표시하는 android 알림 응용 프로그램을 개발 중입니다. 그것은 내 애플 리케이션이 백그라운드에서 실행중인 경우 올바르게 보여줍니다. 하지만 강제로 앱을 강제 종료하거나 기기가 &을 다시 시작하면 알림이 표시되지 않습니다. 앱을 강제 종료하거나 기기를 다시 시작한 경우에도 알림을 표시하는 방법장치 시작 알림 표시 방법

+0

alarmmanager 사용 – njzk2

답변

2

수 없습니다. 알림은 응용 프로그램의 컨텍스트에 첨부됩니다. 응용 프로그램이 종료/폐기되면 알림도 함께 사라집니다.

응용 프로그램 또는 서비스가 시작된 후에 이러한 알림을 다시 만드는 것이 좋습니다. 이를 위해 자동으로 구현하려면 android.intent.action.BOOT_COMPLETED 방송을 포착해야합니다.

+0

서비스 사용 가능 –

+0

예, 서비스를 통해 알림을 만들 수 있습니다. 그러나 알림의 경우 BroadcastReceiver – waqaslam

+0

에서 android.intent.action.BOOT_COMPLETED 이벤트를 얻으면 간단하게 다시 만들 수 있습니다. 작동합니다. 브로드 캐스트가 나를 위해 일하고 있습니다 .. –

1

서비스 대신 AlarmManager을 사용해야합니다. 사용자 정의 의도로 원하는 날짜/시간에 알람을 설정하십시오. BroadcastReceiver에서 알림을 만들고 표시합니다.

장치가 다시 시작되면 BOOT_COMPLETED 인 텐트를 청취하고 경보를 재설정해야 할 수도 있습니다.

편집 :

예 :

long time = // time in milliseconds of when you want your Alarm 

PendingIntent mIntent = PendingIntent.getBroadcast(context, 
       0, new Intent("YOUR_CUSTOM_INTENT"), PendingIntent.FLAG_UPDATE_CURRENT); 

AlarmManager am = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);   
am.set(AlarmManager.RTC_WAKEUP, 
         time, mIntent); 

가 그 다음, 브로드 캐스트 리시버에 YOUR_CUSTOM_INTENT 의도를 잡아 알림을 표시하고 다음 알람을 설정합니다.

+0

하지만 문제가 있습니다. 알림 관리자를 사용 중이며 내 앱에 미래의 알림 날짜와 시간이 있습니다. 자동으로 생성됩니다. 원하는 알림 시간이 일치하면 알림에 공유 환경 설정 파일에 설정된 다음 알림 날짜 및 시간이 표시됩니다. 서비스가 종료 된 경우 다음 통지 날짜가 어떻게 설정됩니다. 어떤 해결책이든, 얘들 아. –

+0

AlarmManager를 사용하는 경우 BroadcastReceiver가 Intent를 수신하면 알림을 표시하고 다음 날짜에 대한 새 Alarm을 설정합니다. * 서비스가 필요하지 않습니다 *. 설정 한 경보는 응용 프로그램이 종료 된 후에도 유지되며 경보에 지정한 의도를 수신하게됩니다. 때가되면. 장치가 다시 시작되면 BOOT_COMPLETED 의도를 잡고 마지막으로 설정된 알람을 다시 설정하거나 (날짜와 시간을 어딘가에 외워야 함) 날짜가 지났을 때 직접 표시하십시오. –

+0

고마워, 나는 방송을 사용하고 나를 위해 일한다. 많이 감사합니다. –