2013-02-09 2 views
2

알람 관리자를 사용하고 있는데 시스템 재부팅시 알람을 유지할 수 없어서 브로드 캐스트 수신기를 확장하는 부트 리시버를 사용해야한다고 읽었지만 수신기 자체와 부팅 수신기의 정확한 차이점을 알아야합니다.부팅 수신기와 브로드 캐스트 수신기 간의 차이점

broadcastReceiver의 onReceive 메서드는 실제로이 코드를 사용하여 bootReceiver의 onReceive에 붙여 넣어야하는 인 텐트를 사용하여 새로운 활동으로 이동합니까? 또는 bootReceiver에 정확히 무엇을 써야합니까?

나는 여러 개의 경보가 있고 각각에 고유 한 requestCode를 부여했기 때문에이 점에 대해 매우 혼란 스럽다.

답변

2

Android에는 별도의 엔트리 "Boot Receiver"가 없습니다. 부트 수신기는 행동과 함께 의도에 응답하는 브로드 캐스트 수신기입니다. android.intent.action.BOOT_COMPLETED.

  • 매니페스트하고 android.intent.action.BOOT_COMPLETED을 처리해야한다는 정보를 추가 할 추가 브로드 캐스트 리시버에서 상속하는 클래스를 만듭니다

    나는 당신이 일의 몇을해야 할 것으로 판단

  • onReceive 코드는 영구 저장소에서 모든 알람을 읽고 다시 설정합니다 (다시 부팅 할 때마다 다시 설정됩니다).

P. http://developer.android.com/reference/android/content/BroadcastReceiver.html

+0

그래, 내가 생각하기에 부트 수신기는 브로드 캐스트 수신기를 확장하는 클래스이지만, 대부분의 사람들이 두 개의 브로드 캐스트 리시버를 사용하여 알람을 처리하고 하나는 재부팅을 처리하기 위해 내가 재부팅 할 일이 없기 때문에, 당신은 영구 저장 장치에서 알람을 읽어야한다고 말했기 때문에 나는 알람을 저장해야합니까? 내가 어떻게 할 수 있니? –

+0

하나의 수신자에게 많은 다른 의도를 줄 수 있습니다. 작동하지만 코드가 복잡해집니다. 두 개의 별도 클래스 (하나는 알람을 처리하고 다른 하나는 재부팅을 처리하는 클래스)를 갖는 것이 좋습니다. 나는 너무 많은 일을 경보로하지 않았다. 질문마다 나는 그들이 재부팅에서 살아남지 못한다는 것을 이해합니다. 그들이하지 않으면 당신은 그들을 복원하는 몇 가지 기능을 구현해야하고 그런 경우에 당신은 어딘가에서 그들을 복원 저장해야합니다. –

+0

BTW. 큰 털이 많은 질문을 여러 개의 간단한 질문으로 나누어 여기에 별도로 게시하는 것이 좋습니다. 이것은 좋은 답변을 얻을 수있는 기회가 많이 늘어납니다. –

관련 문제