文档章节

Widget小结

孤峰无悔
 孤峰无悔
发布于 2016/11/13 00:30
字数 340
阅读 2
收藏 0
点赞 0
评论 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
[IBM DW] 使用 Dojo 开发菜单应用

背景介绍 菜单应用是 Web 页面的点睛之笔。当用户在浏览器端右键单击的时候,浏览器会弹出自带的菜单,显示如“查看源代码”、“复制”、“粘贴”等可用菜单栏。通过使用浏览器自带 的菜单,...

红薯
2010/10/19
1K
0
Android开发小结Part7:LayoutInflater自定义布局

LayoutInflater的作用类似于 findViewById(),不同点是LayoutInflater是用来找layout文件夹下的xml布局文件,并且实例化!而 findViewById()是找具体某一个xml下的具体 widget控件(如:Button...

派卡琪安
2013/01/03
0
0
Android开发权威指南(第2版)新书发布

《Android开发权威指南(第二版)》是畅销书《Android开发权威指南》的升级版,内容更新超过80%,是一本全面介绍Android应用开发的专著,拥有45章精彩内容供读者学习。  《Android开发权威指...

androidguy
06/29
0
0
漫谈QWidget及其派生类(四)

漫谈QWidget及其派生类(三)中我们了QMainWindow到底是个什么东西,接下来就看看QDialog吧,没办法,谁让它这么常用呢? 很多人觉得QDialog比QWidget高级很多,为什么呢? QDialog(this) 和 ...

晨曦之光
2012/05/08
447
0
关于 iOS 11 GM 及正式版可能存在几个小问题

还有几个小时,iOS 11 正式版就要发布了。而在前天,我却从 iOS 11 GM 降级回了 iOS 10。这是我用 iOS 系统七年以来,第一次因为 GM 用的不愉快而回到旧系统。这篇文章,我想谈谈对 iOS 11 的...

I'm TualatriX
2017/11/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

idea tomcat 远程调试

tomcat 配置 编辑文件${tomcat_home}/bin/catalina.sh,在文件开头添加如下代码。    CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=7829" Idea端配......

qwfys
今天
1
0
遍历目录下的文件每250M打包一个文件

#!/usr/bin/env python # -*- utf-8 -*- # @Time : 2018/7/20 0020 下午 10:16 # @Author : 陈元 # @Email : abcmeabc@163.com # @file : tarFile.py import os import tarfile import thr......

寻爱的小草
今天
1
0
expect同步文件&expect指定host和要同步的文件&构建文件分发系统&批量远程执行命令

20.31 expect脚本同步文件 expect通过与rsync结合,可以在一台机器上把文件自动同步到多台机器上 编写脚本 [root@linux-5 ~]# cd /usr/local/sbin[root@linux-5 sbin]# vim 4.expect#!/...

影夜Linux
今天
1
0
SpringBoot | 第九章:Mybatis-plus的集成和使用

前言 本章节开始介绍数据访问方面的相关知识点。对于后端开发者而言,和数据库打交道是每天都在进行的,所以一个好用的ORM框架是很有必要的。目前,绝大部分公司都选择MyBatis框架作为底层数...

oKong
今天
13
0
win10 上安装解压版mysql

1.效果 2. 下载MySQL 压缩版 下载地址: https://downloads.mysql.com/archives/community/ 3. 配置 3.1 将下载的文件解压到合适的位置 我最终将myql文件 放在:D:\develop\mysql 最终放的位...

Lucky_Me
今天
2
0
linux服务器修改mtu值优化cpu

一、jumbo frames 相关 1、什么是jumbo frames Jumbo frames 是指比标准Ethernet Frames长的frame,即比1518/1522 bit大的frames,Jumbo frame的大小是每个设备厂商规定的,不属于IEEE标准;...

问题终结者
今天
2
0
expect脚本同步文件expect脚本指定host和要同步的文件 构建文件分发系统批量远程执行命令

expect脚本同步文件 在一台机器上把文件同步到多台机器上 自动同步文件 vim 4.expect [root@yong-01 sbin]# vim 4.expect#!/usr/bin/expectset passwd "20655739"spawn rsync -av ro...

lyy549745
今天
1
0
36.rsync下 日志 screen

10.32/10.33 rsync通过服务同步 10.34 linux系统日志 10.35 screen工具 10.32/10.33 rsync通过服务同步: rsync还可以通过服务的方式同步。那需要开启一个服务,他的架构是cs架构,客户端服务...

王鑫linux
今天
1
0
matplotlib 保存图片时的参数

简单绘图 import matplotlib.pyplot as pltplt.plot(range(10)) 保存为csv格式,放大后依然很清晰 plt.savefig('t1.svg') 普通保存放大后会有点模糊文件大小20多k plt.savefig('t5.p...

阿豪boy
今天
3
0
java 8 复合Lambda 表达式

comparator 比较器复合 //排序Comparator.comparing(Apple::getWeight);List<Apple> list = Stream.of(new Apple(1, "a"), new Apple(2, "b"), new Apple(3, "c")) .collect(......

Canaan_
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部