在setting中设置系统的字体大小,样式,以及系统语言等等会对widget产生影响,造成widget控件失效。

由于在setting中设置系统的字体大小,样式,以及系统语言等等系统发出 android.appwidget.action.APPWIDGET_UPDATE的 广播,

此时的解决方案如下:

自定义的MyAppWidgetProvider继承于AppWidgetProvider,监听android.appwidget.action.APPWIDGET_UPDATE广播

在该类的onReceive()回调方法中,重新注册控件监听。

private void initListener(Context context){AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context);int[] appWidgetIds = appWidgetManager.getAppWidgetIds(new ComponentName(context, MyAppWidgetProvider.class));RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.appwidget_myprovider);Intent intent;PendingIntent pendingIntent;ComponentName serviceName = new ComponentName(context, MyAppWidgetService.class);/** 刷新按钮 */intent = new Intent(MyAppWidgetService.MSG_REFRESH);intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, appWidgetIds);intent.setComponent(serviceName);pendingIntent = PendingIntent.getService(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);views.setOnClickPendingIntent(R.id.appwidget_refresh_new, pendingIntent);/** 前一页 */intent = new Intent(MyAppWidgetService.MSG_PRE);intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, appWidgetIds);intent.setComponent(serviceName);pendingIntent = PendingIntent.getService(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);views.setOnClickPendingIntent(R.id.appwidget_last, pendingIntent);/** 后一页 */intent = new Intent(MyAppWidgetService.MSG_NEXT);intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, appWidgetIds);intent.setComponent(serviceName);pendingIntent = PendingIntent.getService(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);views.setOnClickPendingIntent(R.id.appwidget_next, pendingIntent);appWidgetManager.updateAppWidget(appWidgetIds, views);}

@Overridepublic void onReceive(Context context, Intent intent) {super.onReceive(context, intent);initListener(context);}



更多相关文章

  1. Android的RelativeLayOut中各种属性的作用
  2. Android中RelativeLayout各个属性介绍
  3. Android(安卓)API指南(二)自定义控件04之 位置说明
  4. Android中RelativeLayout各个属性的含义
  5. Android(安卓)开发大坑汇总(持续更新)
  6. Android学习笔记_布局文件属性的说明
  7. 布局初步
  8. 抽离Android原生控件的方法
  9. (4.1.25)android学习之布局

随机推荐

  1. 跟我自学linux第一天面试作业题
  2. 你见过哪些令你瞠目结舌的 JavaScript 代
  3. 2021整理面试常问题目带答案
  4. 自己期望薪资为啥会打折扣
  5. 基于S.M.A.R.T.的磁盘健康监控
  6. HMS Core 5.1.0 版本发布公告
  7. 转行简历是否要包装
  8. AI如何动态设置报警阀值
  9. 关于表格和表单的简易写法
  10. Linux系统集群架构线上项目配置实战(二)