Android中Widget开发步骤
一、创建一个类,继承自 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)
Android中Widget开发步骤的更多相关文章
- 【移动开发】Android中WIFI开发总结(一)
WIFI就是一种无线联网技术,常见的是使用无线路由器.那么在这个无线路由器的信号覆盖的范围内都可以采用WIFI连接的方式进行联网.如果无线路由器连接了一个ADSL线路或其他的联网线路,则又被称为“热 ...
- 【移动开发】Android中WIFI开发总结(二)
搞了好几天终于有点眉目了,这里接着总结一下Android中WiFi的使用,在前面(http://smallwoniu.blog.51cto.com/3911954/1334951)我们已经简单了解了W ...
- [Android学习笔记]Android中多线程开发的一些概念
线程安全: 在多线程的情况下,不会因为线程之间的操作而导致数据错误. 线程同步: 同一个资源,可能在同一时间被多个线程操作,这样会导致数据错误.这是一个现象,也是一个问题,而研究如何解决此类问题的相关 ...
- Android 桌面Widget开发要点(时间日期Widget)
最近需要编写一个日期时间的桌面Widget用来关联日历程序,以前很少写桌面Widget.对这方面技术不是很熟悉,今天花时间重新整理了一下,顺便把编写一个简单时间日期程序过程记录下来. 桌面Widget ...
- 【转】Android中自定义控件的步骤
原文网址:http://blog.csdn.net/lianchen/article/details/48038969 Android开发中难免遇到需要自定义控件的需求,有些是产品的要求在Androi ...
- Android中常用开发工具类—持续更新...
一.自定义ActionBar public class ActionBarTool { public static void setActionBarLayout(Activity act,Conte ...
- Android中如何动态添加碎片
Android中的开发需要兼容手机和平板,两个方面.这就引入了碎片的概念.(注意:这里用的Fragment强烈建议使用support-v4库中的Fragment) 碎片:是一种可以嵌入在活动当中的UI ...
- Android 中如何计算 App 的启动时间?
(转载) 已知的两种方法貌似可以获取,但是感觉结果不准确:一种是,adb shell am start -w packagename/activity,这个可以得到两个值,ThisTime和Total ...
- Android(java)学习笔记259:JNI之NDK开发步骤
1. NDK开发步骤(回忆一下HelloWorld案例): (1)创建工程 (2)定义native方法 (3)创建jni文件夹 (4)创建c源文件放到jni文件夹 (5)拷贝jni.h头文件到jni目 ...
随机推荐
- rabbitMQ基于spring-rabbitnq
一.什么是MQ MQ全称为Message Queue,消息队列(MQ)是一种应用程序对应用程序的通信方法.应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们.消息传递 ...
- 《机器学习_02_线性模型_Logistic回归》
import numpy as np import os os.chdir('../') from ml_models import utils import matplotlib.pyplot as ...
- flask之gevent-websocket的IO多路复用长连接通信
本节目录: (一)笔记总结: (二)gevent-websocket+flask+javascript实现WS即时通信 (1)无昵称群聊 (2)有昵称群聊 (3)私聊 三种通信模型简述: (1)轮询: ...
- vue打包时semver.js版本报错
如图,报错semver.js版本不正确,解决思路是在node_modules/semver.js内,忽略版本检查 ''' // if ANY of the sets match ALL of its ...
- COCO数据集提取特定多个类并在YOLO-V3上训练
先占个地方,有空再写 ` import os Dir = './coco_class_6/Annotations/val2014' ImageDir = './coco_class_6/images/ ...
- 王艳 201771010127《面向对象程序设计(java)》第十八周学习总结
实验十八 总复习 实验时间 2018-12-30 1.实验目的与要求 (1) 综合掌握java基本程序结构: (2) 综合掌握java面向对象程序设计特点: (3) 综合掌握java GUI 程序设 ...
- CF922F Divisibility
题目链接:http://codeforces.com/contest/922/problem/F 题目大意: 对于一个数集 \(I\),定义 \(f(I)\) 为 \(I\) 中满足条件的数对\((a ...
- 初识Java以及JAVA开发环境搭建
目录 JAVA帝国的诞生 C&C++ JAVA JAVA特性和优势 JAVA三大版本 JDK.JRE.JVE JAVA开发环境搭建 JDK下载与安装.卸载 安装JDK 卸载JDK JDK目录介 ...
- SQL——SQL约束
SQL约束 - 用于限制加入表的数据的类型 可以在创建表时规定约束(通过 CREATE TABLE 语句),或者在表创建之后也可以(通过 ALTER TABLE 语句). NOT NULL ...
- 关于lua的那些事
1.lua是一个脚本语言,由巴西里约热内卢天主教大学Roberto Ierusalimschy.Waldemar Celes 和 Luiz Henrique de Figueiredo三人所组成的研究 ...