나는 그 다음에 두 개의 startService를 호출 할 때 IntentService의 개인 데이터가 지워진다는 문제가있다. 나는 첫 번째 호출이 끝난 후 서비스가 중단되었다가 두 번째 호출을 처리 할 때 다시 생성된다고 가정한다. IntentService를 다시 만들지 않도록 강제하거나이 개인 데이터를 startService 루틴의 두 번 연속 호출에서 동일하게 저장하는 방법이 있습니까?강제로 IntentService를 다시 만들 수없는 방법이 있습니까?
4
A
답변
2
첫 번째 호출이 끝난 후에 서비스가 중지되었다고 가정하고 두 번째 호출을 처리 할 때 다시 작성한다고 가정합니다.
아니요. Intents
이 (가) 모두 처리 된 경우에만 중지됩니다.
3
을 사용하여 데이터를 인스턴스간에 유지하려는 경우 정적 변수에 넣을 수 있습니다. 일반적인 예 : 디스크를로드하는 상태가 있으므로 먼저 인스턴스화 할 때 데이터를로드하는 글로벌 싱글 톤을 만든 다음 데이터를 다시로드하지 않고 동일한 인스턴스를 사용하는 추가 요청을 수행합니다. onCreate()에서 서비스의 새 인스턴스가 싱글 톤을 검색 할 때 이전 서비스 인스턴스가 이미 요청한 경우 다시로드 할 필요가 없습니다.
이러한 디자인을 할 때 프로세스의 수명주기와 죽을 수있는 시점을 이해하는 것이 매우 중요합니다. 그렇지 않으면 정상 작동 중에 프로세스가 종료 될 때 무작위로 데이터가 손실 될 수 있습니다.
관련 문제
- 1. iPhone 응용 프로그램을 강제로 다시 실행하는 방법이 있습니까?
- 2. 강제로 iOS 4 앱을 닫고 다시 열 수있는 방법이 있습니까?
- 3. 페이지가 이미 tlb에 있어도 강제로 페이지를 강제로 만들 수 있습니까?
- 4. 강제로 다시 그리시겠습니까?
- 5. 강제로 Java 스레드를 중지하는 좋은 방법이 있습니까?
- 6. svn에서 로그 항목을 강제로 체크인하는 방법이 있습니까?
- 7. 하위보기를 해제하려면 UIView 강제로 방법이 있습니까?
- 8. 엔티티를 강제로 다시 불러올 수 있습니까?
- 9. 강제로 창을 다시 그리는 방법?
- 10. 부모 창을 다시 그리지 않고 강제로 다시 그릴 수 있습니까?
- 11. Android IntentService를 어떻게 디버깅합니까?
- 12. IntentService를 중지하는 방법은 무엇입니까?
- 13. 매일 웹 앱을 만들 수있는 방법이 있습니까?
- 14. 강제로 UITableViewCell 다시 그리기 시도
- 15. guard + guard-rspec를 사용하여 모든 사양을 강제로 실행하는 방법이 있습니까?
- 16. 파이썬에서 클래스 속성을 만들 수있는 방법이 있습니까?
- 17. iPhone SDK에서 오버레이보기를 만들 수있는 방법이 있습니까?
- 18. TFS를 링크 가능하게 만들 수있는 방법이 있습니까?
- 19. @PersistenceContext를 유연하게 만들 수있는 방법이 있습니까?
- 20. MobileSafari의 뒤로 버튼을 다시 만들 수 있습니까?
- 21. 강제로 TcpListener를 닫을 수 있습니까
- 22. IntentService를 사용하여 우선 순위 네트워킹 수행
- 23. FlashDevelop에서 코드를 다시 포맷하는 방법이 있습니까?
- 24. Vim으로 자동으로 중괄호를 다시 포맷하는 방법이 있습니까?
- 25. Graphviz : 노드를 맨 아래로 강제로 이동시키는 방법이 있습니까?
- 26. TCP를 사용하도록 jdbc 연결을 강제로 수행하는 방법이 있습니까?
- 27. 잘린 열을 SQL Server 테이블에 강제로 삽입하는 방법이 있습니까?
- 28. DOM을 강제로 Javascript/jQuery에서 다시 평가할 수 있습니까?
- 29. 강제로 페이지 다시 그리기 중간 기능
- 30. PHP : 강제로 파일 다운로드 및 IE 다시
첫 번째 인 텐트가 전송되었다고 가정하면 IntentService에서 처리되어 IntentService가 중지되었습니다. 얼마 후, 두 번째 의도가 전송되었습니다. IntentService의 컨텍스트를 이전 인 텐트를 처리하지 못하게하려면 어떻게해야합니까? – miqqo
@miqqo : 그렇지 않습니다. 그것이 바로 요점입니다. 호출 사이에 'IntentService'가 RAM에 없습니다. 실제로 행운과 함께 전체 응용 프로그램은 RAM에 저장되지 않습니다. 다른 운영 체제의 다른 응용 프로그램처럼 이것을 처리해야합니다. 데이터베이스와 같은 영구 저장소에서 실행하는 동안 물건을 저장하십시오. – CommonsWare