文档章节

Widget小结

孤峰无悔
 孤峰无悔
发布于 2016/11/13 00:30
字数 340
阅读 2
收藏 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);

© 著作权归作者所有

共有 人打赏支持
孤峰无悔
粉丝 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
PyQt 实战:简易便签软件的制作

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

Cosven
2014/09/25
0
5
Flutter Beta 3 新特性概览

首先感谢 掘金 帮我们转了这篇文章,并纳入 大会专题页中。不过我们打算自己再发一遍。 小集团队会持续跟进 的动态,和大家一起来学习并推动 的发展。我们还和阿里闲鱼团队合作,后期在我们公...

知识小集
05/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

window.parent,top,window.self,parent,opener

在应用有frameset或者iframe的页面时,parent是父窗口,top是最顶级父窗口(有的窗口中套了好几层frameset或者iframe),self是当前窗口, opener是用open方法打开当前窗口的那个窗口。 wind...

inidcard
1分钟前
1
0
Linux下Redis的安装和部署

一、Redis介绍 Redis是当前比较热门的NOSQL系统之一 它是一个key-value存储系统。和Memcache类似,但很大程度补偿了Memcache的不足,它支持存储的value类型相对更多,包括string、list、set...

曾大大胖
4分钟前
1
0
开源堡垒机jumpserver搭建

概述 之前说了国产良心kodexplorer,今天再说一个国内比较好的开源项目jumpserver,除此之外还可以的国内开源项目我觉得就是宝塔面板了。废话不多说上教程搭建。 虽然说你可以看下面的教程不...

bboysoulcn
10分钟前
1
0
iPhoneX 底部距离

iPhoneX 底部距离 CGFloat adjust = 0; if (@available(iOS 11.0, *)) { //Account for possible notch UIEdgeInsets safeArea = [[UIApplication sharedApplication] keyWindow].safeAreaIn......

壹峰
14分钟前
2
0
养生篇01 (饭水分离法)

作者简介❤李祥文,1939年出生于韩国庆尚北道尚州市成昌邑。 24岁时,偶遇奇人习得这种分别喝水吃饭的养生方法,从而治好了自己的胃病和哮喘。从此,李祥文对饮食之于人体的影响产生了极大的...

十九亿少女的梦
30分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部