0

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

  1. 使用 IP 地址 ping Web 服务器(检查每个服务器的活跃度)
  2. Web 服务器需要证书身份验证

实际的应用程序已经可以正常工作了,我只想为我正在 ping 的 1 台服务器做一个小部件。我使用了一个自定义的 DefaultHttpClient、MyHttpClient类,它完成了我所有的证书身份验证。我如何使用它,MyHttpClient类是通过键入

DefaultHttpClient client = new MyHttpClient(getApplicationContext());

它只有在我将它放在Activity类中时才有效。它在AppWidgetProvider类中不起作用。它给出的错误是:

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

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 回答