Android開發(fā)中Widget的生命周期實例分析
本文實例分析了Android開發(fā)中Widget的生命周期。分享給大家供大家參考,具體如下:
Widget是android中桌面小控件,創(chuàng)建時必須繼承AppWidgetProvider,AppWidgetProvider其實就是繼承了BroadcastReceiver的Receiver的一種,widget有以下幾個生命周期方法:
1.onEnabled方法:此方法在Widget第一次被創(chuàng)建的時候調(diào)用,并且只調(diào)用一次,此方法中常放入初始化數(shù)據(jù),服務(wù)的操作。
2.onReceive方法:通BroadcastReceiver的OnReceive方法,但是這里有所不同的是,當接收到Widget操作時首先調(diào)用的是OnReceive方法,然后才是相關(guān)的操作方法。這也很好理解,Widget的是運行在桌面運用程序中的小控件,當自己的應(yīng)用程序需要調(diào)用Widget是,就需要發(fā)送廣播事件去調(diào)用。
3.onUpdate:Widget在固定的時間里更新時調(diào)用的方法。
4.onDeleted:Widget被刪除時調(diào)用的方法。
5.onDisabled:所用Widget被刪除是調(diào)用的方法,同onEnabled方法相對。
例子及注釋:
package cn.itcast.testwidget; import android.appwidget.AppWidgetManager; import android.appwidget.AppWidgetProvider; import android.content.Context; import android.content.Intent; /** * 根據(jù)配置文件 每隔固定的時間 更新一下界面 * 最小值 半個小時 1800000毫秒 * onRecevie - > onUpdate * * * 注意 widget這個組件不是現(xiàn)實在我們的應(yīng)用程序里面 * 顯示在桌面的應(yīng)用程序 * 不同的桌面 他們的widget的創(chuàng)建和銷毀對應(yīng)的 回調(diào)的事件可能會有不能 * 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被刪除的時候 會執(zhí)行ondelete方法 } @Override public void onEnabled(Context context) { // TODO Auto-generated method stub System.out.println("onEnabled"); // widget第一次創(chuàng)建的時候 執(zhí)行的方法 // 初始化widget數(shù)據(jù)的操作,開啟以后后臺 super.onEnabled(context); } @Override public void onDisabled(Context context) { // TODO Auto-generated method stub super.onDisabled(context); System.out.println("onDisabled"); // 當所有的widget都被刪除的時候 執(zhí)行 ondisable(); // 停止我們開啟的服務(wù) // 刪除垃圾文件 臨時文件 } }
更多關(guān)于Android相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Android開發(fā)入門與進階教程》、《Android通信方式總結(jié)》、《Android基本組件用法總結(jié)》、《Android視圖View技巧總結(jié)》、《Android布局layout技巧總結(jié)》及《Android控件用法總結(jié)》
希望本文所述對大家Android程序設(shè)計有所幫助。
- Android TabWidget切換卡的實現(xiàn)應(yīng)用
- Android 桌面Widget開發(fā)要點解析(時間日期Widget)
- android實現(xiàn)widget時鐘示例分享
- 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用法實例分析
- Android學習之AppWidget高級效果
- Android基于widget組件實現(xiàn)物體移動/控件拖動功能示例
相關(guān)文章
Flow轉(zhuǎn)LiveData數(shù)據(jù)丟失原理詳解
這篇文章主要為大家介紹了Flow轉(zhuǎn)LiveData數(shù)據(jù)丟失原理詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-01-01Android程序開發(fā)之WebView使用總結(jié)
這篇文章主要介紹了Android程序開發(fā)之WebView使用總結(jié)的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2016-07-07Android實現(xiàn)可瀏覽和搜索的聯(lián)系人列表
這篇文章主要為大家詳細介紹了Android實現(xiàn)可瀏覽和搜索的聯(lián)系人列表的相關(guān)代碼,瀏覽所有聯(lián)系人和根據(jù)名稱搜索聯(lián)系人,感興趣的小伙伴們可以參考一下2016-07-07Android 使用Vitamio打造自己的萬能播放器(1)——準備
本文主要介紹Android Vitamio,在Android開發(fā)視頻播放器的時候,大家經(jīng)常會遇到系統(tǒng)版本和不同的Android手機不同導(dǎo)致開發(fā)的軟件不能完美適用,這里給大家介紹個播放器插件可以適應(yīng)所有Android設(shè)備2016-07-07Flutter?Widget?之StatefulBuilder構(gòu)建方法詳解
這篇文章主要為大家介紹了Flutter?Widget?之StatefulBuilder構(gòu)建方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-11-11