本文實(shí)例分析了Android開發(fā)中Widget的生命周期。分享給大家供大家參考,具體如下:
Widget是android中桌面小控件,創(chuàng)建時(shí)必須繼承AppWidgetProvider,AppWidgetProvider其實(shí)就是繼承了BroadcastReceiver的Receiver的一種,widget有以下幾個(gè)生命周期方法:
1.onEnabled方法:此方法在Widget第一次被創(chuàng)建的時(shí)候調(diào)用,并且只調(diào)用一次,此方法中常放入初始化數(shù)據(jù),服務(wù)的操作。
2.onReceive方法:通BroadcastReceiver的OnReceive方法,但是這里有所不同的是,當(dāng)接收到Widget操作時(shí)首先調(diào)用的是OnReceive方法,然后才是相關(guān)的操作方法。這也很好理解,Widget的是運(yùn)行在桌面運(yùn)用程序中的小控件,當(dāng)自己的應(yīng)用程序需要調(diào)用Widget是,就需要發(fā)送廣播事件去調(diào)用。
3.onUpdate:Widget在固定的時(shí)間里更新時(shí)調(diào)用的方法。
4.onDeleted:Widget被刪除時(shí)調(diào)用的方法。
5.onDisabled:所用Widget被刪除是調(diào)用的方法,同onEnabled方法相對(duì)。
例子及注釋:
package cn.itcast.testwidget;import android.appwidget.AppWidgetManager;import android.appwidget.AppWidgetProvider;import android.content.Context;import android.content.Intent;/** * 根據(jù)配置文件 每隔固定的時(shí)間 更新一下界面 * 最小值 半個(gè)小時(shí) 1800000毫秒 * onRecevie - > onUpdate * * * 注意 widget這個(gè)組件不是現(xiàn)實(shí)在我們的應(yīng)用程序里面 * 顯示在桌面的應(yīng)用程序 * 不同的桌面 他們的widget的創(chuàng)建和銷毀對(duì)應(yīng)的 回調(diào)的事件可能會(huì)有不能 * android luncher / htc sence / 米u(yù)i / 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); //當(dāng)某一個(gè)widget被刪除的時(shí)候 會(huì)執(zhí)行ondelete方法 } @Override public void onEnabled(Context context) { // TODO Auto-generated method stub System.out.println("onEnabled"); // widget第一次創(chuàng)建的時(shí)候 執(zhí)行的方法 // 初始化widget數(shù)據(jù)的操作,開啟以后后臺(tái) super.onEnabled(context); } @Override public void onDisabled(Context context) { // TODO Auto-generated method stub super.onDisabled(context); System.out.println("onDisabled"); // 當(dāng)所有的widget都被刪除的時(shí)候 執(zhí)行 ondisable(); // 停止我們開啟的服務(wù) // 刪除垃圾文件 臨時(shí)文件 }}更多關(guān)于Android相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Android開發(fā)入門與進(jìn)階教程》、《Android通信方式總結(jié)》、《Android基本組件用法總結(jié)》、《Android視圖View技巧總結(jié)》、《Android布局layout技巧總結(jié)》及《Android控件用法總結(jié)》
希望本文所述對(duì)大家Android程序設(shè)計(jì)有所幫助。
新聞熱點(diǎn)
疑難解答
圖片精選