0

名前の適切な方法がわからないため、タイトルは少しわかりにくいです。私はウィジェットプログラミングを学び始めたばかりで、簡単なウィジェットの作り方を大まかに理解しました。今、私はいくつかのことをする私の実際のアプリケーションでそれを使いたいです:

  1. IPアドレスを使用してWebサーバーにpingを実行します(各サーバーのアクティブ性を確認するため)
  2. Webサーバーには証明書認証が必要です

実際のアプリケーションはすでに問題なく動作しています。ping先のサーバーの1つに対してウィジェットを作成したいだけです。すべての証明書認証を行うカスタムDefaultHttpClient、MyHttpClientクラスを使用しました。これをどのように使用するか、MyHttpClientクラスは次のように入力します

DefaultHttpClient client = new MyHttpClient(getApplicationContext());

そして、それは私がActivityクラス内にある場合にのみ機能します。AppWidgetProviderクラス内では機能しません。それが与えるエラーは次のとおりです:

メソッドgetApplicationContext()は、タイプSystemWidget.ParseLoyaltySystemWidget.javaに対して未定義です。

4

1 に答える 1

2

ウィジェットは基本的に単なるビューであり、それ以上のものではないため、データを要求することはできません。ウィジェットによって提示されるデータを更新する場合は、サービスを使用して httprequest を実行できます。次に、独自のアクション インテントをブロードキャストして AppWidgetProvider の onRecieve で処理することにより、データをウィジェットに送信できます。または、ウィジェットを直接更新することもできます。

もちろん、アクティビティがアクティブな場合は、ウィジェットも更新できます。

詳細はこちら: https://developer.android.com/guide/topics/appwidgets/index.html

サービスはウィジェットとは異なります。これは、いくつかのアクションを実行するために実行できる別のコードです。サービスを実行したら、取得したデータを使用して、上記の回答で説明したようにウィジェットを更新できます。Android サービスのチュートリアルは次のとおりです。

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

ウィジェットをアクティビティから直接更新する場合は、このスレッドも参照してください: Programmatically update widget from activity/service/receiver

于 2012-10-19T08:52:10.510 に答える