欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android开发中Widget的生命周期实例分析

程序员文章站 2024-02-24 11:41:28
本文实例分析了android开发中widget的生命周期。分享给大家供大家参考,具体如下: widget是android中桌面小控件,创建时必须继承appwidgetpr...

本文实例分析了android开发中widget的生命周期。分享给大家供大家参考,具体如下:

widget是android中桌面小控件,创建时必须继承appwidgetprovider,appwidgetprovider其实就是继承了broadcastreceiver的receiver的一种,widget有以下几个生命周期方法:

1.onenabled方法:此方法在widget第一次被创建的时候调用,并且只调用一次,此方法中常放入初始化数据,服务的操作。

2.onreceive方法:通broadcastreceiver的onreceive方法,但是这里有所不同的是,当接收到widget操作时首先调用的是onreceive方法,然后才是相关的操作方法。这也很好理解,widget的是运行在桌面运用程序中的小控件,当自己的应用程序需要调用widget是,就需要发送广播事件去调用。

3.onupdate:widget在固定的时间里更新时调用的方法。

4.ondeleted:widget被删除时调用的方法。

5.ondisabled:所用widget被删除是调用的方法,同onenabled方法相对。

例子及注释:

package cn.itcast.testwidget;
import android.appwidget.appwidgetmanager;
import android.appwidget.appwidgetprovider;
import android.content.context;
import android.content.intent;
/**
 * 根据配置文件 每隔固定的时间 更新一下界面
 * 最小值 半个小时 1800000毫秒
 * onrecevie - > onupdate
 *
 *
 * 注意 widget这个组件不是现实在我们的应用程序里面
 * 显示在桌面的应用程序
 * 不同的桌面 他们的widget的创建和销毁对应的 回调的事件可能会有不能
 * android luncher / htc sence / 米ui / 360桌面/awt /qq桌面/....
 *
 *
 */
public class mywidget extends appwidgetprovider {
  @override
  public void onreceive(context context, intent intent) {
    // todo auto-generated method stub
    super.onreceive(context, intent);
    system.out.println("onreceive");
  }
  @override
  public void onupdate(context context, appwidgetmanager appwidgetmanager,
      int[] appwidgetids) {
    system.out.println("onupdate");
    super.onupdate(context, appwidgetmanager, appwidgetids);
  }
  @override
  public void ondeleted(context context, int[] appwidgetids) {
    // todo auto-generated method stub
    system.out.println("ondeleted");
    super.ondeleted(context, appwidgetids);
    //当某一个widget被删除的时候 会执行ondelete方法
  }
  @override
  public void onenabled(context context) {
    // todo auto-generated method stub
    system.out.println("onenabled");
    // widget第一次创建的时候 执行的方法
    // 初始化widget数据的操作,开启以后后台
    super.onenabled(context);
  }
  @override
  public void ondisabled(context context) {
    // todo auto-generated method stub
    super.ondisabled(context);
    system.out.println("ondisabled");
    // 当所有的widget都被删除的时候 执行 ondisable();
    // 停止我们开启的服务
    // 删除垃圾文件 临时文件
  }
}

更多关于android相关内容感兴趣的读者可查看本站专题:《android开发入门与进阶教程》、《android通信方式总结》、《android基本组件用法总结》、《android视图view技巧总结》、《android布局layout技巧总结》及《android控件用法总结

希望本文所述对大家android程序设计有所帮助。