2016-09-20 1 views
1

매일 12시에 상태 표시 줄 알림을 표시하고 싶습니다. 따라서 알림을 표시하는 IntentService를 발생시키는 AlarmManager를 만듭니다.App 앱 데이터 지우기 후 AlarmManager가 작동하지 않습니다.

부팅 완료 수신기를 추가했으며 AlarmManager는 앱이 설치 될 때 등록됩니다. 모든 것이 잘 작동하고 앱이 포 그라운드에 있지 않을 때에도 알림이 매일 오후 12시에 표시됩니다 (예상되는 동작).

문제는 응용 프로그램 설정에서 응용 프로그램 데이터를 지울 때마다 AlarmManager가 더 이상 응용 프로그램 알림을 트리거하지 않는다는 것입니다. 그러나 앱을 다시 시작하면 앱이 예상되는 동작으로 매일 알림 작업을 시작합니다.

누구든지이 문제에 대해 도움을 줄 수 있습니까? 이러한 상황에 관계없이 AlarmManager가 트리거되도록하는 해결 방법이 있습니까?

답변

1

이것은 정상적인 동작입니다. 사용자가 자발적으로 응용 프로그램의 데이터를 중지하거나 지우면 응용 프로그램을 중지해야합니다. 안드로이드 시스템이 전체 작업을 종료합니다. 활동이 다시 실행될 때까지 서비스 또는 브로드 캐스트가 실행되지 않습니다. 그래서 당신은 이것을 막기 위해 아무 것도 할 수 없습니다. qn 응답 here을 참조하십시오.

+0

앱이 작동 할 때 어떤 작업을 수행 할 수있는 방법이 있습니까? 강제로 죽임 (앱이 죽을 때 알람을 다시 설정하는 것과 같은)? 안드로이드에서 제공하는 것에 대한 모든 규정은 무엇입니까? – oathkeeper

+0

@oathkeeper 아니요, 해킹 방법이 있는지는 모르겠지만 안드로이드가 직접 아무것도하지 못하게합니다. – droidev

2

AlarmManager가 이러한 조건에 관계없이 트리거되도록하는 해결 방법이 있습니까?

아니요. '데이터 지우기'를 누르면 앱의 데이터가 지워질뿐만 아니라 its processes are also killed이됩니다. 그런 일이 발생하면 예정된 경보가 사라집니다.

이런 일이 발생하는 것은 이상한 일이 아닙니다. 실행중인 앱에는 사용자가 지운 데이터가 필요할 수 있습니다. 데이터를 찾지 못하면 충돌 할 수 있습니다. 앱을 종료하면 이러한 충돌을 방지 할 수 있습니다.

+0

앱이 강제 종료 될 때 (앱이 죽을 때 알람을 재설정하는 등) 어떤 작업을 수행 할 수있는 방법이 있습니까 ?? Android에서 제공하는 기능에 대한 규정이 있습니까? – oathkeeper

+0

@ oathkeeper 아니, 당신은 그렇게 할 수 없습니다. 그게 애플 리케이션을 살해의 목적을 이길 것이라고 –

+0

도와 줘서 고마워. 응용 프로그램을 죽이는 것 같아요 내 애플 리케이션의 Achilles 발 뒤꿈치입니다 : ( – oathkeeper

관련 문제