Android 通过单击按钮更新 Widget
我有一个小部件,显示数据库中的一些信息。该小部件每隔一小时定期更新一次。但我还允许用户通过单击小部件上的刷新按钮来手动更新它。如何执行单击操作并刷新小部件?
注意:小部件使用服务来执行操作。
提前致谢。
I have a widget that shows some informations from database. The widget is periodically updated every one hour. But i also let user to update it manually by clicking a refresh button on widget.How can i perform the click action and refresh the widget?
Note: The widget uses service to perform operations.
Thanx in advance.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我花了几个小时寻找答案,终于找到了答案。在您的AppWidgetProvider中,在onUpdate中,循环您的小部件,并为每个小部件创建一个Intent(向其中添加小部件id和一些数据以使其唯一,例如意图uri),然后创建一个PendingIntent并将其分配给要在其中创建点击侦听器的视图。
在我的具体情况下,我有两个单击侦听器,一个用于刷新,一个用于启动设置活动,因此如果您想启动一个活动,只需使用 PendingIntent.getActivity 并添加 Intent.FLAG_ACTIVITY_NEW_TASK 标志。
两者结合起来:
希望这会对某人有所帮助。 :)
I've looked for an answer for hours and finally I've figured it out. In your AppWidgetProvider, in the onUpdate, loop in your widgets and, for each widget, create an Intent (add to it the widget id and some data to make it unique, like the intent uri), then create a PendingIntent and assign it to the view where you want to create the click listener.
In my specific case I had two click listener, one to refresh and one to start the settings activity, so if you want to start an Activity just use the PendingIntent.getActivity and add the Intent.FLAG_ACTIVITY_NEW_TASK flag.
The two combined:
Hope this will help someone. :)
我认为当用户单击*刷新按钮*n时,您必须重新加载小部件视图。
如果您遇到任何问题,请发表评论。
快乐编码。
I think you have to reload your widget view when user click on *refresh butto*n.
If You are getting any problem then put comment.
Happy Coding.