文档章节

Widget小结

孤峰无悔
 孤峰无悔
发布于 2016/11/13 00:30
字数 340
阅读 3
收藏 0

public class AppWidgetProvider extends BroadcastReceiver

查看源码可知 Widget 其实是一个特殊的广播接受者

1.创建一个类继承AppWidgetProvider

public class MyWidget extends AppWidgetProvider {

}

2.Widget就是一个广播接收者,所以在清单文件中进行配置

<receiver android:name="com.itheima.widget.MyWidget" >
     <intent-filter>
        <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
     </intent-filter>

    <meta-data
        android:name="android.appwidget.provider"
        android:resource="@xml/example_appwidget_info" />
</receiver>

android:name 处配置全类名

android:resource 处配置一个Widget的描述文件

3.描述文件

<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
    android:initialLayout="@layout/test" //布局文件
    android:minHeight="40dp"                
    android:minWidth="40dp"
    android:updatePeriodMillis="86400000" >
</appwidget-provider>

4.生命周期

1.onEnable():第一次widget被创建,初始化工作

2.onDisable():最后一个widget被销毁的时候,擦屁股工作

3.onUpdate():每当widget被创建的时候,以及updatePeriodMillis时间到的时候

4.onDelete():每当widget被删除的时候调用

5.onAppWidgetOptionsChanged():当widget被改变大小

6.onReceive():其他是声明周期事件都是通过onReceive分发的

5.Widget的点击事件

PendingIntent:延期的意图,是让另外一个应用程序帮我们执行的意图,相当于一个回调。当满足某些条件后,可以通过PendingIntent打开Activity、Service或者发送广播

//自定义的广播消息。
Intent intent = new Intent();
intent.setAction("com.liangfeng.mobilesafe.killall");
PendingIntent pendingIntent = PendingIntent.getBroadcast(
        UpdateWidgetService.this, 0, intent,
        PendingIntent.FLAG_UPDATE_CURRENT);
//给按钮注册一个点击事件,事件是一个延期的意图
views.setOnClickPendingIntent(R.id.btn_clear, pendingIntent);

© 著作权归作者所有

共有 人打赏支持
上一篇: Activity小结1
下一篇: 版本控制小结
孤峰无悔
粉丝 1
博文 22
码字总数 8266
作品 0
武汉
私信 提问
从零开始学虚幻4游戏开发系列18

在本课的内容中,我们将使用另一个名为binding的方法来更新TimerText widget的内容。 Bindings 使用binding,可以自动更新特定的widget属性。但在此之前,widget的相关属性必须有Bind下拉列表...

王寒
01/11
0
0
Ubuntu 安装 Qt 开发环境 简单实现

Ubuntu 安装 Qt 开发环境 简单实现是本文要介绍的内容,内容很短,取其精华,详细介绍Qt 类库的说明,先来看内容。 一、Ubuntu下安装Qt $ sudo apt-get install qt4-dev-tools qt4-doc qt4-q...

mickelfeng
2012/12/21
0
0
Qt 之 show,hide,setVisible,setHidden,close 等小结

不知道标题该怎么取了,文中就简单整理一下下面几个函数吧。因为不断有网友问到此类问题(包括相关问题),所以,自己整理一下,也算学习小结了。 这些函数分两类,一类是用来删除对象的(从内...

晨曦之光
2012/05/08
498
0
在win和android上同时进行OpenCV程序设计

基于qt进行Android图像处理项目设计的时候,初期可以首先在windows上进行调试,等到比较成熟后将代码转换到adnroid上。 这里仅以widget为例,如果使用qtquick是一样的。具体以下几步: 1、项...

禾路
02/15
0
0
PyQt 实战:简易便签软件的制作

便签软件 为什么写便签软件 一直都有做一个笔记软件的想法,而我给笔记软件设计的一个特色功能就是它的便签功能。不过由于各种原因,笔记软件无法完成,但是他的便签功能也可以脱离笔记单独存...

Cosven
2014/09/25
0
5

没有更多内容

加载失败,请刷新页面

加载更多

MySQL Replication 梳理详解

MySQL Replication 1 MySQL5.5以前的复制 异步、SQL线程串行化回放 MySQL内建的复制功能是构建大型,高性能应用程序的基础。主服务器将更新写入二进制日志文件,从服务器重新执行一遍来实现的...

PeakFang-BOK
10分钟前
1
0
.NET Core & ConsoleApp & appsettings.json

准备 Visual Studio 2017 .NET Core 2.1 新建控制台应用(.NET Core) 默认的 Program.cs // Program.csusing System;namespace ConsoleApp1{ class Program { static voi......

taadis
20分钟前
1
0
结合lucene谈谈日期的压缩问题

说起日期值的压缩,一般容易想到的办法是将日期转化成long类型,然后再通过变长整形进行压缩,我算了一下按照毫秒来算最多占用5个字节(可以通过“谈谈变长整型”中的表查看),确实节省了部...

FAT_mt
今天
1
0
导出私有函数与私有变量

在Go语言中, package中包含函数与变量通过identifier的首字母是否大写来决定它是否可以被其它package所访问。当一个函数或变量名称为小写字母时,默认是无法被其他package引用的. 有没有办法...

xtof
今天
1
0
new Date() 在Safari下的 Invalid Date问题

问题复现 var timeStr = '2018-11-11 00:00:00';var time = new Date(timeStr);// error: Invalid Date... 在safari浏览器下,time为Invalid Date, 导致后面代码执行错误; 其他浏览器诸...

会写代码的husky
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部