如何通过appwidget调用某些活动方法

时间:2014-12-21 02:38:03

标签: android

我正试图通过小部件的按钮在我的主要活动中调用方法。 小部件具有不同的按钮,具有不同的值。我希望该方法能够完成其工作,而不会显示附加到主要活动的gui。 (使用按钮值发送http请求)

到目前为止,我搜索了一些教程,但我不太了解它们,我的代码笨拙而且几乎没有用。我认为需要混合使用意图,服务和广播才能实现这一目标?!我真的不知道,有人可以发布一个可理解的描述或教程,涵盖了如何做到这一点的所有方面? 我认为没有代码或图片可供提供,因为现在没有什么可看的。

提前感谢任何答案。

1 个答案:

答案 0 :(得分:0)

Android AppWidgets根本不需要与Activity有任何关系,尽管可以点击或启动活动。

您可能知道,AppWidgets的主要界面是通过您的AppWidgetProvider(如果您不知道其中的任何内容,请查看the official android guide)。

点击后,您可以告诉按钮使用PendingIntent执行以下操作之一:

  • 使用PendingIntent.getService启动服务(可能是针对http请求等耗时任务的最佳选择)。

  • 要开始活动,请使用PendingIntent.getActivity

  • 要向BroadcastReceiver广播消息,请使用PendingIntent.getBroadcast创建。

在所有这些情况下,您都会告诉按钮以{}运行PendingIntent setOnClickPendingIntent(int id, PendingIntent operation)的{​​{1}}方法。

通常应使用RemoteViews构造函数创建传递给这些方法中的任何一个的Intent,其中第二个参数是您希望将待发送的意图发送到的服务,活动或接收者类