간단한 알리미 응용 프로그램을 쓰고 있습니다. 모든 미리 알림은 DB에 저장됩니다. DB를 쿼리하고 여분의 타임 스탬프가있는 AlarmManager에 pendingIntents를 만드는 서비스가 있습니다. 또한 Broadcast Receiver를 사용하여 AlarmManager에서 인 텐트를 수신합니다. 이 방송 수신기는 미리 알림 옵션 (해제, 일시 중지 등)으로 미리 알림 활동을 시작합니다. 이 스키마는 작동하지만 좋지 않을 것 같습니다. 포 그라운드에서 미리 알림 활동이 있으면 새로운 미리 알림 활동이 시작됩니다 (현재 배경으로 이동). 현재 활동을 새로운 활동으로 대체하지 않고 사용자에게 알려주고 현재 이후에 표시되는 새로운 알림이 있음을 알려드립니다. 내 생각으로많은 PendingIntents, BroadcastReceiver 및 활동
답변
, 내 작업에 대한 좋은 해결책을 발견했습니다
1) 나는 내 알림 활동 launchMode는 "singleTop"이라고 AndroidManifest를 설정했습니다. launchMode에 대한 자세한 내용은 여기 http://developer.android.com/guide/topics/manifest/activity-element.html 두 단어로 방송 수신자가 전경에있는 활동을 시작하려고하면 onCreate가 아니라 onNewIntent가 호출됩니다.
2) 필자는 필자의 활동에서 onNewIntent 메서드를 재정의하고 모든 수신 인 텐트 (브로드 캐스트에서)를 ArrayList에 저장해야했습니다.
3) finish() 전에 ArrayList에서 현재 인 텐트를 제거해야하며 크기가 0이되면 실제로 작업을 마칩니다().
하나의 중요한 추가 사항. 방송에서 수신기의 의도가 있어야합니다 FLAG_ACTIVITY_SINGLE_TOP, 같은 :
intent.setFlags (Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP);
기본 활동 없음 onNewIntent가 호출되지 않으면 해당 항목이 없습니다. 알다시피, 이것은 알려진 문제입니다 : http://code.google.com/p/android/issues/detail?id=4155 안드로이드 1.6에서 발견 된 버그는 여전히 존재합니다. 그래서 지금은 기능입니다 :)
내 영어로는 죄송합니다. 읽기가 쉽지만 작성하기가 쉽습니다.
- 1. 지오 펜스가 발생하지 않음 (pendingintents and broadcastreceiver)
- 2. 비 활동 클래스의 BroadcastReceiver 등록
- 3. 저장 PendingIntents
- 4. Dending PendingIntents
- 5. 활동 청취자 - Google Cloud Messaging - BroadcastReceiver
- 6. 새 활동 시작 BroadcastReceiver 또는 서비스 클래스
- 7. onReceive에서 활동 양식 BroadcastReceiver 가져 오는 방법
- 8. BroadcastReceiver 및 alarmManager Android
- 9. AlarmManager로 특정 PendingIntents 취소하기
- 10. 의도 생성자 및 BroadcastReceiver
- 11. 하나의 활동 - 많은 단편 또는 많은 활동 - 많은 단편?
- 12. Bluetooth 서버 및 BroadCastReceiver
- 13. BroadcastReceiver 및 wifiState
- 14. BroadcastReceiver 및 화면 꺼짐
- 15. BroadcastReceiver TTS 및 볼륨
- 16. PhoneStateListener 및 BroadcastReceiver
- 17. if 및 broadcastreceiver
- 18. Broadcastreceiver 및 SMSReceiver
- 19. BroadcastReceiver 및 PostDelay
- 20. 활동중인 BroadcastReceiver
- 21. 활동을 감지하는 BroadcastReceiver 클래스
- 22. (BroadcastReceiver 사용)
- 23. 많은 주에서 활동 관리하기
- 24. 활동이없는 BroadcastReceiver
- 25. Android AlarmManager 및 BroadcastReceiver 명료함
- 26. Android 알람 관리자 및 BroadcastReceiver
- 27. BroadcastReceiver, IntentService 및 GPS 콜백
- 28. 장치 부팅시 BroadcastReceiver 및 AlarmManager
- 29. 이메일 및 Android 용 BroadcastReceiver
- 30. Android BroadcastReceiver 및 깊은 잠