zoukankan      html  css  js  c++  java
  • Android 创建一个Widget

    Widget的生命周期:

     参考文档appWidget
     1.当桌面上第一个widget被创建的时候:
      onEnabled  当widget第一次被创建的时候调用. 非常适合做应用程序的初始化.
      onReceive
      onUpdate  当有新的widget被创建的时候 更新界面的操作. 当时间片(xml文件中的更新时间)到的时候 onupdate()调用.
      onReceive
      
     2.当第二个widget被创建的时候(第3个也是这样)
      onUpdate
      onReceive
      
     3.从界面上移除第一个widget:
      onDeleted
      onReceive
     
     4.移除最后一个widget:
      onDeleted
      onReceive
      onDisabled     当widget从界面上全部移除的时候 调用的方法. 非常适合 擦屁股.删除临时文件. 停止后台服务.
      onReceive
      
    注意:

     widget就是一个特殊的广播接受者 当有新的事件产生的是 肯定会调用 onReceive();

       在不同的手机上  widget的生命周期调用方法 可能有细微的不同
     
       比如:360桌面 go桌面 awt桌面 腾讯桌面 小米桌面

    实现过程:
     写一个widget步骤(参考文档):
     1.写一个类继承AppWidgetProvider(注:该类间接继承广播接收者,所以需要在清单文件中注册)
     2.在清单文件中配置该类(参考文档)
       <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>
     3.在res目录下建一个xml的文件夹,并在里面建一个xml文件(参考文档)
      <?xml version="1.0" encoding="utf-8"?>
      <appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
       android:minWidth="294dp"
       android:minHeight="72dp"
       android:updatePeriodMillis="1800000"
       android:initialLayout="@layout/main">
      </appwidget-provider>
     4.测试
      到桌面,常按桌面,选择Widget,可以找到自己定义滚动Widget

    三、特点
     潜在在其他应用上的小控件。可以定期更新

  • 相关阅读:
    把联系人从一张卡转移到另一张卡或者从一个手机转移到另一个手机
    Echarts画折线图
    Echarts画条形图
    Echarts画饼状图
    《计算机网络》读后感
    Vue.js项目无法启动:sh: 1: vue-cli-service: not found
    《Redis入门指南(第 2 版)》读后感
    翻译:《实用的Python编程》InstructorNotes
    翻译:《实用的Python编程》TheEnd
    翻译:《实用的Python编程》09_03_Distribution
  • 原文地址:https://www.cnblogs.com/zhangping/p/3514189.html
Copyright © 2011-2022 走看看