Android開發(fā)中Widget的生命周期實(shí)例分析
本文實(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ì)有所幫助。
- Android TabWidget切換卡的實(shí)現(xiàn)應(yīng)用
- Android 桌面Widget開發(fā)要點(diǎn)解析(時(shí)間日期Widget)
- android實(shí)現(xiàn)widget時(shí)鐘示例分享
- android自定義toast(widget開發(fā))示例
- 簡單掌握Android Widget桌面小部件的創(chuàng)建步驟
- Android中的AppWidget入門教程
- Android桌面組件App Widget完整案例
- Android桌面組件App Widget用法入門教程
- Android桌面插件App Widget用法分析
- Android開發(fā)入門之Appwidget用法分析
- Android開發(fā)之App widget用法實(shí)例分析
- Android學(xué)習(xí)之AppWidget高級(jí)效果
- Android基于widget組件實(shí)現(xiàn)物體移動(dòng)/控件拖動(dòng)功能示例
相關(guān)文章
Flow轉(zhuǎn)LiveData數(shù)據(jù)丟失原理詳解
這篇文章主要為大家介紹了Flow轉(zhuǎn)LiveData數(shù)據(jù)丟失原理詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-01-01Android程序開發(fā)之WebView使用總結(jié)
這篇文章主要介紹了Android程序開發(fā)之WebView使用總結(jié)的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-07-07Android實(shí)現(xiàn)可瀏覽和搜索的聯(lián)系人列表
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)可瀏覽和搜索的聯(lián)系人列表的相關(guān)代碼,瀏覽所有聯(lián)系人和根據(jù)名稱搜索聯(lián)系人,感興趣的小伙伴們可以參考一下2016-07-07Android動(dòng)態(tài)控制狀態(tài)欄顯示和隱藏
這篇文章主要介紹了Android動(dòng)態(tài)控制狀態(tài)欄顯示和隱藏,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-04-04Android 使用Vitamio打造自己的萬能播放器(1)——準(zhǔn)備
本文主要介紹Android Vitamio,在Android開發(fā)視頻播放器的時(shí)候,大家經(jīng)常會(huì)遇到系統(tǒng)版本和不同的Android手機(jī)不同導(dǎo)致開發(fā)的軟件不能完美適用,這里給大家介紹個(gè)播放器插件可以適應(yīng)所有Android設(shè)備2016-07-07Flutter?Widget?之StatefulBuilder構(gòu)建方法詳解
這篇文章主要為大家介紹了Flutter?Widget?之StatefulBuilder構(gòu)建方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11