2012-10-19 3 views
0

이름은 무엇이 적절한 이름인지 알 수 없으므로 다소 혼란 스럽습니다. 방금 위젯 프로그래밍을 배우기 시작했고 간단한 위젯을 만드는 방법에 대해 대략적으로 알게되었습니다. 지금은 몇 가지 않는 내 실제 응용 프로그램에 사용하려는 :Android Wigets는 맞춤 DefaultHttpClient를 사용할 수 없습니다.

  1. 이 핑 웹 서버 (각 서버의 화려 함을 확인)
  2. 웹 서버에 IP 주소를 사용하는 인증서 인증이 필요

실제 응용 프로그램은 이미 아무런 문제없이 작동하고 있습니다. 단지 핑할 서버 중 하나에 대해 위젯을 실행하고 싶습니다. 내 모든 인증서 인증을 수행하는 사용자 지정 DefaultHttpClient MyHttpClient 클래스를 사용했습니다. 내가 이것을 사용 방법 MyHttpClient 클래스는

DefaultHttpClient client = new MyHttpClient(getApplicationContext()); 

를 입력하는 것입니다 그리고 내가 활동 클래스 내에있는 경우에만 작동합니다. AppWidgetProvider 클래스 내에서 작동하지 않습니다. 이 범 오류 :

가 요청할 수 있도록하는 방법 getApplicationContext()는 위젯은 근본적으로 단지 도면 아무것도 이상이다 SystemWidget.ParseLoyalty SystemWidget.java

+0

위젯은 기본적으로 수신기를 브로드 캐스트 : 당신이 직접 활동에서 위젯을 업데이트 싶다면

https://developer.android.com/guide/components/services.html

은 또한이 스레드를 참조하십시오. 매개 변수에서 컨텍스트를 수신합니다. 그러나 거기에서 인터넷에 액세스해야하는 경우 서비스를 시작하는 것이 가장 좋습니다. – njzk2

답변

2

유형에 대해 정의되지 무엇이든에서 데이터. 위젯이 제공하는 데이터를 업데이트하려면 서비스를 사용하여 httprequest를 수행 할 수 있습니다. 그런 다음 자신의 액션 인 텐트를 브로드 캐스트하거나 AppWidgetProvider의 onRecieve에서 처리하거나 위젯을 직접 업데이트하여 위젯에 데이터를 보낼 수 있습니다.

물론 활동이 활성화 된 경우 위젯을 업데이트 할 수도 있습니다.

은 자세한 내용은 여기를 참조하십시오 : https://developer.android.com/guide/topics/appwidgets/index.html

이 서비스는 위젯 다릅니다. 이것은 dos 작업에 실행할 수있는 코드와는 다른 것입니다. 일단 서비스를 실행하면 위의 대답에서 설명한대로 검색된 데이터를 사용하여 위젯을 업데이트 할 수 있습니다. 여기에 안드로이드 서비스에 대한 자습서는 다음과 같습니다 Programmatically update widget from activity/service/receiver

+0

아, 답장을 보내 주셔서 감사합니다. httprequest를 사용하기 위해 서비스를 사용한다고 할 때 그것을 확장해야합니까? ** AppWidgetProvider **를 이미 확장했기 때문에 코드 내의 어딘가에 ** 서비스 **를 확장 할 수 있습니까? 나는 전에 이것을 시도한 적이 없으며 시험하기 전에 명확히하고 싶다. –

+0

답변이 업데이트되었습니다. 응답을 upvote로 표시하고 승인 된 것으로 표시하십시오. –

관련 문제