내 응용 프로그램 용 Android AppWidget을 개발 중입니다. 내 appwidget을 업데이트하려면 네트워크에서 데이터를 다운로드해야합니다. 하지만 onUpdate 메소드에서 그렇게하려고하면 내 appWidget이 Android 시스템에 의해 종료됩니다. 시간 소모적 인 작업을 수신기에서 수행 할 수 없다는 것을 알았으므로 onUpdate 메서드에서 서비스를 시작하고 그로부터 스레드를 시작했습니다. 그러나 여전히 문제는 지속됩니다. 누구나 Appwidget에서 네트워크 작업을 수행하는 방법을 알려 주실 수 있습니까?Android : 네트워크 작업 (Appwidget)
3
A
답변
3
다운로드 작업을 서비스에 위임하십시오 (예 : IntentService
, 가능하면 WakefulIntentService
). 작업 자체 중에 장치가 잠들 수있는 위험이 있는지 여부에 따라 달라질 수 있습니다.
AppWidgetProvider
은 IntentService
에 startService()
을 부릅니다.
귀하의 IntentService's
onHandleIntent()
방법은 정적 getInstance()
방법을 통해 AppWidgetManager
자신을 받고, onUpdate()
당신이 현재 가지고있는 일을 할 것입니다. 그러나 onHandleIntent()
이 백그라운드 스레드에서 실행되기 때문에 필요한만큼의 시간이 소요될 수 있습니다. IntentService
은 모든 미해결 작업 요청이 완료되면 자동으로 종료됩니다.
관련 문제
- 1. Android : AppWidget 작업 및 허용 된 작업
- 2. Android appwidget 컴파일
- 3. Android AppWidget 크기
- 4. Android AppWidget : Error inflating 클래스
- 5. Android - 홈 화면 appwidget 투명도
- 6. Android AppWidget, 대규모 레이아웃 불일치
- 7. AppWidget
- 8. Android AppWidget 구성 - 새로운 작업으로 시작
- 9. Android appwidget, 버튼을 넣을 수 있습니까?
- 10. Android AppWidget TextView : 런타임에 배경색을 설정하는 방법
- 11. AppWidget 업데이트
- 12. android sdk의 네트워크 이벤트에 대한 의도적 인 작업
- 13. Android 에뮬레이터에서 네트워크 액세스
- 14. AppWidgetHost가 AppWidget 버튼에 포커스를 어떻게 설정합니까?
- 15. appWidget 오리엔테이션 코드
- 16. AppWidget alarmmanager가 업데이트되지 않습니다.
- 17. AppWidget 이미지 품질
- 18. get appwidget width
- 19. 매우 간단한 appwidget 업데이트 문제
- 20. Android 앱으로 네트워크 운영자 변경
- 21. android : 로컬 네트워크 공유에 액세스
- 22. Android : 활동 네트워크 연결 설정
- 23. Android 기기의 네트워크 인터페이스 이름
- 24. Android (Java) 네트워크 프로그래밍 리소스
- 25. 네트워크 연결 대역폭 감지 (Android)
- 26. Android 캘린더 작업
- 27. Asynk 작업 android
- 28. Android 캔버스에서의 합성 작업
- 29. 비동기 작업 android onPostExecute
- 30. Android 리소스가 부족한 작업
RemoteViewsService를 사용하여이를 결합하는 방법은 무엇입니까? 비동기 작업이 완료된 후 IntentService가 RemoteViewsService를 시작해야합니까? – Malachiasz
@Malachiasz : "비동기 작업이 완료된 후 IntentService가 RemoteViewsService를 시작해야합니까?" -- 아니. RemoteViewsService는 앱 위젯 프레임 워크에서 자동으로 사용됩니다. IntentService가 'RemoteViewsService'가 가져와야하는 데이터베이스를 업데이트하는 것과 같이 IntentService가 변경 한 데이터를 RemoteViewsService가 인식하고 있는지 확인해야합니다. RemoteViewsService에서 뷰를 다시로드 할 앱 위젯을 얻는 방법이 있어야합니다. 그러나 이것을 조사하지는 않았으며 내 머리 꼭대기에서 어떻게 끝내는지 모릅니다. – CommonsWare