Widget创建过程

依照android文档
http://www.android-doc.com/guide/topics/appwidgets/index.html

1.写一个类继承MyWidget AppWidgetProvider 并且在清单文件中注册

<receiver android:name="ExampleAppWidgetProvider" >
    <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>

其中resource为xml的配置文件

2.新建文件夹xml 创建example_appwidget_info.xml


<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
    android:minWidth="294dp"  //最小宽度
    android:minHeight="72dp"  // 最小高度
    android:updatePeriodMillis="86400000"  //更新间隔时间(毫秒值) 每隔24小时一更新,最短半个小时
    android:previewImage="@drawable/preview" // 预览图片 默认是logo
    android:initialLayout="@layout/example_appwidget"  //初始化布局文件
    android:configure="com.example.android.ExampleAppWidgetConfigure"  // 配置页面 点击进入的页面
    android:resizeMode="horizontal|vertical">  // 缩放方式
    android:widgetCategory="home_screen|keyguard" //支持类型  keyguard锁屏页面 4.2以上支持
    android:initialKeyguardLayout="@layout/***" // 锁屏窗口的布局 4.2以上支持
</appwidget-provider>

项目中一般使用一下几个即可

<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
    android:minWidth="294dp"  //最小宽度
    android:minHeight="72dp"  // 最小高度
    android:updatePeriodMillis="0" 
    android:initialLayout="@layout/example_appwidget"  //初始化布局文件
</appwidget-provider>

其中android:updatePeriodMillis=”0”
更新时间如果为半个小时肯定不能达到目的
在后台起一个服务 定时器每个指定时间更新一下widget

3.widget 生命周期

OnReceive() //所以声明周期被调用后都会调用一下  
        OnEnabled() //第一个widget被创建时调用
    OnUpdate() // 当新增widget时调用 自动更新时调用
        OnDeleted() // widget被删除时调用
        OnDisabled() // 最后一个widget被移除时调用
        OnAppWidgetOptionsChanged() //widget宽高发生变化时

4.
写一个服务 并在清单文件中配置
onCreate()
onDestroy()
在桌面有widget时启动服务 在Widget的OnEnabled方法中启动服务 为了防止服务被杀死可yi在
OnUpdate()中也启动服务 服务多次启动不会造成任何影响
在disDabled中停止服务
在服务中更新Widget
用AppWidgetManager.updateAppWidget()
widget增加点击事件
setOnClickPendingIntent()
监听屏幕关闭 开启或关闭定时器

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值