Android Wigets无法使用自定义DefaultHttpClient

时间:2012-10-19 08:07:10

标签: android android-widget

标题有点令人困惑,因为我不知道命名它的适当方法是什么。我刚刚开始学习小部件编程,并大致了解如何制作一个简单的小部件。现在我想在我的实际应用程序中使用它,它做了一些事情:

  1. 使用IP地址ping Web服务器(以检查每个服务器的活动性)
  2. Web服务器需要证书身份验证
  3. 实际的应用程序已经没有问题了,我只想为我要ping的其中一台服务器做一个小部件。我使用了自定义DefaultHttpClient, MyHttpClient 类,它执行我的所有证书身份验证。我如何使用它, MyHttpClient 类是通过输入

    DefaultHttpClient client = new MyHttpClient(getApplicationContext());
    

    只有在活动类中才有效。它在 AppWidgetProvider 类中不起作用。它给出的错误是:

      

    方法getApplicationContext()未定义类型   SystemWidget.ParseLoyalty SystemWidget.java

1 个答案:

答案 0 :(得分: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