一、创建一个类,继承自 AppWidgetProvider

生命周期介绍:

onEnabled():创建第一个widget时调用

onDisabled():删除最后一个widget时调用

二、在清单文件中,声明一个receiver

2.1 声明intent-filter的action

2.2 声明meta-data

2.3 根据resource布局widget

三、创建一个服务类,动态(定时)更新widget中的数据

备注:服务在第一步创建类中生命周期的onEnabled方法中开启,在onDisabled方法中关闭

3.1 在服务的onCreate()方法中,使用AppWidgetManager.getInstance(getApplicationContext());获取widget管理器对象

3.2 调用widgetManager中的updateAppWidget方法,更新widget

// provider:要更新widget的类名

ComponentName provider = new ComponentName(getApplicationContext(), ExampleAppWidgetProvider.class);

// views:远程界面,用于获取widget中的控件,来更新控件中的数据

RemoteViews views = new RemoteViews(getPackageName(), R.layout.process_widget);

// 给RemoteViews的子组件赋值

views.setTextViewText(R.id.process_count, "sample_data");

// 自定义一个广播接收者,在这里发送广播,接收到广播以后完成指定的后台任务

Intent intent = new Intent("com.mzzdxt.widget.cleartask");

PendingIntent pendingIntent = PendingIntent.getBroadcast(getApplicationContext(), 0, intent , 0);

// 给widget按钮加点击事件

views.setOnClickPendingIntent(R.id.btn_clear, pendingIntent);

void android.appwidget.AppWidgetManager.updateAppWidget(ComponentName provider, RemoteViews views)

最新文章

  1. PHP安装kafka插件
  2. C# 连接DB2字符串 Oracle免安装客户端连接字符串
  3. Html标签第三课
  4. javascript删除元素节点
  5. NPOI导出word,以及对table的一些设置
  6. 1.Repeater控件
  7. java-StringTokenizer类
  8. Kafka 源码剖析
  9. 备忘:java在cmd中编译运行
  10. 我敢说你不一定完全理解try 块,catch块,finally 块中return的执行顺序
  11. SQLServer之修改PRIMARY KEY
  12. pip 安装 和 卸载 django
  13. Structured Streaming + Kafka Integration Guide 结构化流+Kafka集成指南 (Kafka broker version 0.10.0 or higher)
  14. 解决在IDEA 的Maven下 出现 Cannot access in offline mode 问题
  15. 根据条件决定My97DatePicker日期控件弹出的日期格式
  16. 一、JavaScript概述 二、JavaScript的语法 三、JavaScript的内置对象
  17. C++11新特性应用--介绍几个新增的便利算法(用于排序的几个算法)
  18. jenkins之升级
  19. java System.arrayCopy使用说明
  20. 实验吧 Fair Play

热门文章

  1. Zookeeper 如何保证分布式系统数据一致性
  2. XShell 评估到期
  3. 环境篇:Zeppelin
  4. js数组取出非重复元素
  5. C#常见异常
  6. 0511Object类和异常
  7. Java——异常处理,数据库连接
  8. 读Pyqt4教程,带你入门Pyqt4 _002
  9. python爬取王者荣耀全英雄皮肤
  10. (易忘篇)java基本语法难点1