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

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

posted on 2014-01-10 18:16  清凉一夏之博客  阅读(373)  评论(0编辑  收藏  举报