强制Android小部件更新

强制Android小部件更新,第1张

概述我以onreceive方法回复我的appwidget上的按钮.当我按下按钮时,我想强制部件调用onupdate方法.我该如何做到这一点? 提前致谢! 小部件实际上无法响应点击,因为它不是单独的进程运行.但是它可以启动服务来处理你的命令: public class TestWidget extends AppWidgetProvider { public void onUpdate(Conte 我以onreceive方法回复我的appWidget上的按钮.当我按下按钮时,我想强制小部件调用onupdate方法.我该如何做到这一点?

提前致谢!

解决方法 小部件实际上无法响应点击,因为它不是单独的进程运行.但是它可以启动服务来处理你的命令:
public class TestWidget extends appwidgetprovider {  public voID onUpdate(Context context,AppWidgetManager appWidgetManager,int[] appWidgetIDs) {        final int N = appWidgetIDs.length;        // Perform this loop procedure for each App Widget that belongs to this provIDer        for (int i=0; i<N; i++) {            int appWidgetID = appWidgetIDs[i];            // Create an Intent to launch UpdateService            Intent intent = new Intent(context,UpdateService.class);            PendingIntent pendingIntent = PendingIntent.getService(context,intent,0);            // Get the layout for the App Widget and attach an on-click Listener to the button            RemoteVIEws vIEws = new RemoteVIEws(context.getPackagename(),R.layout.appWidget_provIDer_layout);            vIEws.setonClickPendingIntent(R.ID.button,pendingIntent);            // Tell the AppWidgetManager to perform an update on the current App Widget            appWidgetManager.updateAppWidget(appWidgetID,vIEws);        }    }    public static class UpdateService extends Service {        @OverrIDe        public int onStartCommand(Intent intent,int flags,int startID) {          //process your click here          return START_NOT_STICKY;        }    }}

您还应该在清单文件中注册新服务:

<service androID:name="com.xxx.yyy.TestWidget$UpdateService">

您可以在SDK中的维基词典示例中找到UpdateService实现的另一个示例

而这里还有另一个好办法Clickable widgets in android

总结

以上是内存溢出为你收集整理的强制Android小部件更新全部内容,希望文章能够帮你解决强制Android小部件更新所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1133407.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存