精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

全面解析Application的使用

移動開發 Android
Application類在每一次開發當中是我們都會遇到的,每一個APP都會有一個Application實例,它擁有和APP一樣長的生命周期,Application和APP一起“同生共死”.

[[436291]]

前言

Application類在每一次開發當中是我們都會遇到的,每一個APP都會有一個Application實例,它擁有和APP一樣長的生命周期,Application和APP一起“同生共死”;

我們今天就來講解下,加強下基礎和內功,讓自己更有自信;

一、Application是什么?

  • android系統會為每一個程序運行時創建一個Application類的對象且僅創建一個,所以Application能夠說是單例 (singleton)模式的一個類;
  • application對象的生命周期是整個程序中最長的,它的生命周期就等于這個程序的生命周期。由于它是全局的單例的。所以在不同的Activity,Service中獲得的對象都是同一個對象;
  • Application和Activity,Service一樣是Android框架的一個系統組件,當Android程序啟動時系統會創建一個 Application對象,用來存儲系統的一些信息;
  • 通常我們是不需要指定一個Application的,系統會自動幫我們創建,如果需要創建自己的Application,那也很簡單,創建一個類繼承Application并在AndroidManifest.xml文件中的application標簽中進行注冊;
  • 啟動Application時,系統會創建一個PID,即進程ID,所有的Activity都會在此進程上運行;
  • Application對象的生命周期是整個程序中最長的,它的生命周期就等于這個程序的生命周期,因為它是全局的單例的,所以在不同的Activity,Service中獲得的對象都是同一個對象,所以可以通過Application來進行一些,如:數據傳遞、數據共享和數據緩存等操作;

二、Application類的方法

1、onCreate()方法

繼承自 ContextWarpper 類

  1. public class Application extends ContextWrapper implements ComponentCallbacks2 { 
  2. ... 
  3. ... 
  4.  public void onCreate() { 
  5.  } 
  • 在Application創建的時候調用,一般用于初始化一些東西,如全局的對象,環境的配置;
  • 設置全局共享數據,如全局共享變量、方法等;

注意:

共享數據只在應用程序的生命周期內有效,當該應用程序被殺死,這些數據也會被清空,所以只能存儲一些具備 臨時性的共享數據

請不要執行耗時操作,否則會拖慢應用程序啟動速度;

2、onConfigurationChanged(Configuration newConfig)

重寫此方法可以監聽APP一些配置信息的改變事件(如屏幕旋轉等);

當配置信息改變的時候會調用這個方法;

  1. registerComponentCallbacks(new ComponentCallbacks2() { 
  2.             @Override 
  3.             public void onConfigurationChanged(Configuration newConfig) { 
  4.               ... 
  5.             } 
  6.         }); 

3、onLowMemory()方法

  • 重寫此方法可以監聽Android系統整體內存較低時候的事件;
  • 調用時刻:Android系統整體內存較低時;
  1. registerComponentCallbacks(new ComponentCallbacks2() { 
  2.   @Override 
  3.             public void onLowMemory() { 
  4.             } 
  5.         }); 

4、onTerminate()方法

  • 通知 應用程序 當前內存使用情況(以內存級別進行識別)
  • 根據當前內存使用情況進行自身的內存資源的不同程度釋放,以避免被系統直接殺掉 & 優化應用程序的性能體驗;
  • 系統在內存不足時會按照LRU Cache中從低到高殺死進程;優先殺死占用內存較高的應用;
  1. registerComponentCallbacks(new ComponentCallbacks2() { 
  2. @Override 
  3.   public void onTrimMemory(int level) { 
  4.   // Android系統會根據當前內存使用的情況,傳入對應的級別 
  5.   // 下面以清除緩存為例子介紹 
  6.     super.onTrimMemory(level); 
  7.   .   if (level >= ComponentCallbacks2.TRIM_MEMORY_MODERATE) { 
  8.         mPendingRequests.clear(); 
  9.         mBitmapHolderCache.evictAll(); 
  10.         mBitmapCache.evictAll(); 
  11.     } 
  12.         }); 

5、registerActivityLifecycleCallbacks()和unregisterActivityLifecycleCallbacks()

這兩個方法用于注冊或者注銷對APP內所有Activity的生命周期監聽;

當APP內Activity的生命周期發生變化的時候就會調用ActivityLifecycleCallbacks里面的方法:

  1. registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks() { 
  2.             @Override 
  3.             public void onActivityCreated(Activity activity, Bundle savedInstanceState) { 
  4.                 Log.e(TAG,"onActivityCreated: " + activity.getLocalClassName()); 
  5.             } 
  6.             @Override 
  7.             public void onActivityStarted(Activity activity) { 
  8.                 Log.e(TAG,"onActivityStarted: " + activity.getLocalClassName()); 
  9.             } 
  10.             @Override 
  11.             public void onActivityResumed(Activity activity) { 
  12.                 Log.e(TAG,"onActivityResumed: " + activity.getLocalClassName()); 
  13.             } 
  14.             @Override 
  15.             public void onActivityPaused(Activity activity) { 
  16.                 Log.e(TAG,"onActivityPaused: " + activity.getLocalClassName()); 
  17.             } 
  18.             @Override 
  19.             public void onActivityStopped(Activity activity) { 
  20.                 Log.e(TAG, "onActivityStopped: " + activity.getLocalClassName()); 
  21.             } 
  22.             @Override 
  23.             public void onActivitySaveInstanceState(Activity activity, Bundle outState) { 
  24.             } 
  25.             @Override 
  26.             public void onActivityDestroyed(Activity activity) { 
  27.                 Log.e(TAG,"onActivityDestroyed: " + activity.getLocalClassName()); 
  28.             } 
  29.         }); 

查看log打印的情況如下:

  1. onActivityPaused: MainActivity 
  2. onActivityStopped: MainActivity 
  3. onActivityStarted: MainActivity 
  4. onActivityResumed: MainActivity 

6、registerComponentCallbacks()和unregisterComponentCallbacks()方法

注冊和注銷 ComponentCallbacks2回調接口

  1. registerComponentCallbacks(new ComponentCallbacks2() { 
  2.             @Override 
  3.             public void onTrimMemory(int level) { 
  4.             } 
  5.             @Override 
  6.             public void onConfigurationChanged(Configuration newConfig) { 
  7.             } 
  8.             @Override 
  9.             public void onLowMemory() { 
  10.             } 
  11.         }); 

三、應用場景和自定義

1、應用場景

  • 初始化應用程序級別的資源,如全局對象;
  • 數據共享、數據緩存;
  • 獲取應用程序當前的內存使用情況,及時釋放資源,從而避免被系統殺死;
  • 監聽應用程序配置信息的改變,如屏幕旋轉等;
  • 監聽應用程序內,所有Activity的生命周期;

2、自定義Application

(1)繼承Application

  1. public class MyApplication extends Application{ 
  2.    /**聲明變量*/ 
  3.     private String value; 
  4.     @Override 
  5.     public void onCreate() { 
  6.         super.onCreate(); 
  7.         // 初始化全局變量 
  8.         setValue(VALUE);  
  9.     } 
  10.     public void setValue(String value){ 
  11.         this.value = value; 
  12.     } 
  13.     public String getValue(){ 
  14.         return value; 
  15.     } 

注意:繼承Application類,主要重寫里面的onCreate()方法(android.app.Application包的onCreate()才是真正的Android程序的入口點),就是創建的時候,初始化變量的值。然后在整個應用中的各個文件中就可以對該變量進行操作了;

(2)在ApplicationManifest.xml文件中配置自定義的Application

  1. <application 
  2.        android:name="MyApplication"
  3. </application> 

(3)使用自定義的Application類實例

  1. private MyApplication app; 
  2. // 只需要調用Activity.getApplication() 或Context.getApplicationContext()就可以獲得一個Application對象 
  3. app = (MyApplication) getApplication(); 
  4. // 然后再得到相應的成員變量 或方法 即可 
  5. app.getValue(); 

總結

每個Android App運行時,會首先自動創建Application 類并實例化 Application 對象,且只有一個即 Application類 是單例模式(singleton)類;

即不同的組件(如Activity、Service)都可獲得Application對象且都是同一個對象;

Application 對象的生命周期是整個程序中最長的,即等于Android App的生命周期;

本文轉載自微信公眾號「Android開發編程」

 

責任編輯:姜華 來源: Android開發編程
相關推薦

2021-11-19 17:26:11

AppApplication方法

2017-05-23 15:47:04

JavaScriptthis解析

2017-04-10 18:34:16

AndroidNotificatio

2025-06-27 07:19:48

2010-07-22 09:25:09

telnet命令

2010-06-24 15:35:04

IPx協議

2010-03-09 17:19:01

Linux時鐘

2024-08-29 08:28:17

2009-12-24 14:02:57

Linux集群技術

2009-11-11 17:02:44

MPLS路由協議

2010-10-20 15:11:53

SQL Server作

2024-11-15 10:58:40

2009-01-12 10:27:07

IT職位解析認證

2012-11-15 13:42:29

2009-12-25 16:47:04

Linux Make規

2016-03-24 14:02:05

ActivityAndroid啟動

2010-09-25 14:12:50

Java內存分配

2010-09-17 10:04:36

2010-08-04 14:34:35

Flex編程模型

2010-03-08 17:27:56

Linux profi
點贊
收藏

51CTO技術棧公眾號

国产一级二级av| 国产精品久久久久久久久久小说| 不卡中文字幕在线观看| av在线看片| 91在线视频18| 国产玖玖精品视频| 久久久久免费看| 在线看成人短视频| 伊人网在线播放| 国产91综合一区在线观看| 97视频在线观看网址| 五月婷婷六月香| 亚洲国产精品免费视频| 欧美色另类天堂2015| 伊人久久大香线蕉成人综合网| 精品人妻无码一区二区| 老司机精品导航| 欧美黄色性视频| 国产一二三av| 伊人久久大香线蕉综合网蜜芽| 在线成人免费视频| 看av免费毛片手机播放| 国产福利在线播放麻豆| 久久精品日韩一区二区三区| 国产欧美日韩伦理| 国产精品久久久久久久免费看| 在线欧美视频| 美女精品视频一区| 一级片黄色录像| 久久91成人| 亚洲精品v欧美精品v日韩精品| 男生和女生一起差差差视频| 四虎4545www国产精品| 国产91在线精品| 精品欧美激情精品一区| 欧美精品在欧美一区二区| 97电影在线看视频| 久久综合99re88久久爱| 国产一区二区久久久| 精品国产一级片| 精品在线一区二区三区| 欧美激情a在线| 免费观看美女裸体网站| 成人短视频在线| 国产精品你懂的在线| 国产欧美久久久| 久久久精品性| 国内精品久久久久影院 日本资源| 中文字幕九色91在线| 97av中文字幕| 国产网站在线免费观看| 中文字幕一区二区三区在线观看| 欧美日韩精品综合| 国产精品久久毛片a| 国产精品视频26uuu| 91丝袜一区二区三区| 亚洲伦伦在线| 国产精品一二三产区| 99精品偷自拍| 国产在线一区二区三区播放| 黄色小视频免费观看| 国产成a人无v码亚洲福利| 91丨九色丨国产在线| 一级爱爱免费视频| 精品一区二区三区蜜桃| 成人福利在线视频| 国产精品久久久久毛片| 日韩高清不卡一区二区三区| 国产成一区二区| 国产精品51麻豆cm传媒| 麻豆精品国产传媒mv男同| 国产精品永久免费| 99久久久国产精品无码免费| 国产99久久久久| 国产伦精品一区二区三区四区免费| 国产 日韩 欧美 综合| av日韩在线网站| 欧美凹凸一区二区三区视频| 国产精品二线| 1000部国产精品成人观看| av久久久久久| 精品国产第一区二区三区观看体验| www.色就是色.com| 精品亚洲a∨一区二区三区18| 日韩视频免费观看高清完整版在线观看 | 久久激情av| 成人知道污网站| 最新成人av在线| 国产精品日韩三级| 日本在线高清| 欧美日韩国产美| 国产女主播在线播放| 天堂99x99es久久精品免费| 伊人激情综合网| 1024手机在线视频| 亚洲在线一区| 91免费在线视频网站| 色噜噜在线播放| 中文字幕不卡在线播放| 三级网在线观看| 免费高潮视频95在线观看网站| 欧美中文字幕不卡| 午夜不卡福利视频| 日本成人7777| 久久天天躁狠狠躁夜夜躁2014 | 欧美日韩激情| 欧美激情免费视频| 波多野结衣在线观看一区| 国产精一区二区三区| 欧美中文娱乐网| 欧美videossex| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 草莓福利社区在线| 欧美性xxxxx极品娇小| 深爱五月综合网| 视频一区中文| 69av在线视频| 国产成人精品无码高潮| 国产精品天美传媒| 亚洲色欲综合一区二区三区| 一区二区三区高清在线观看| 中文字幕欧美专区| 特黄视频免费看| 懂色av中文一区二区三区| 亚洲一二三区在线| 欧美va在线观看| 亚洲精品国产精品久久清纯直播| 青草影院在线观看| 免费观看一级特黄欧美大片| 久久伊人中文字幕| 欧美日韩高清在线一区| 国产羞羞视频在线播放| 5566中文字幕一区二区电影| 中文字幕在线观看免费高清| 一本色道精品久久一区二区三区| 亚洲影视九九影院在线观看| 99中文字幕一区| 在线免费不卡电影| 日韩中文字幕电影| 亚洲综合国产| 免费h精品视频在线播放| 黄频免费在线观看| 亚洲国产精品系列| 国产女同在线观看| kk眼镜猥琐国模调教系列一区二区| 今天免费高清在线观看国语| 豆花视频一区| 欧美精品在线免费观看| 国产精品视频一二区| 亚洲视频一区二区在线| 不用播放器的免费av| 国产精品97| 91青草视频久久| jizz性欧美| 精品久久一区二区| 国产亚洲精品码| 91亚洲国产成人精品一区二区三| 国产精品久久久久久久乖乖| 亚洲国产一区二区三区在线观看| 久久久久亚洲av片无码| 精品一区免费av| 99精品视频网站| 国产精品亚洲综合在线观看| 久久精品美女视频网站| 91影院在线播放| 亚洲天堂2014| 天堂va欧美va亚洲va老司机| 亚洲免费黄色| 欧美极品一区| 欧美性www| 毛片精品免费在线观看| 亚洲精品视频专区| 欧美午夜丰满在线18影院| 先锋影音av在线| 国产主播一区二区三区| 91成人综合网| 久久91精品| 成人黄色中文字幕| aa级大片免费在线观看| 亚洲毛片在线看| 亚洲综合免费视频| 亚洲午夜久久久久| 色欲av无码一区二区三区| av一本在线| 色哟哟一区二区在线观看| 久久婷婷五月综合| 国产一区啦啦啦在线观看| 久久av综合网| 日产精品一区二区| 99国精产品一二二线| 色戒汤唯在线| 久久精品成人一区二区三区| 日本一区二区三不卡| 四虎影视在线观看2413| 日本韩国精品一区二区在线观看| 永久av免费网站| 波多野结衣在线一区| 日本美女高潮视频| 最新国产精品| 日韩欧美视频一区二区| 国产一区二区久久久久| 人人爽久久涩噜噜噜网站| 黄av在线免费观看| 精品五月天久久| 国产熟女一区二区三区五月婷| 动漫精品一区二区| 男人的天堂久久久| 国产欧美一区视频| 在线免费看黄色片| 激情都市一区二区| 久久久久久香蕉| 在线播放精品| 综合网五月天| 欧美日本成人| 国产日韩欧美一区二区三区四区| 欧美日韩伦理一区二区| 91禁外国网站| 欧美人与牲禽动交com | 国产欧美中文字幕| 日本在线影院| 欧美极品xxxx| 免费在线观看av网站| 91视频综合| 亚洲aa在线观看| 精品日本视频| 久久噜噜噜精品国产亚洲综合 | 亚洲成人国产| 久久综合入口| 国产精品久久久久av蜜臀| 成人免费午夜电影| 久久久加勒比| 国产精品91久久久| 亚洲天堂电影| 国产+成+人+亚洲欧洲| 日本高清成人vr专区| xvideos亚洲| 日本在线免费播放| 在线日韩欧美视频| 黄色大片在线免费观看| 亚洲精品午夜精品| 你懂的在线看| 亚洲网在线观看| 加勒比一区二区三区在线| 亚洲激情视频在线播放| 手机av免费在线观看| 欧美tk丨vk视频| 亚洲乱色熟女一区二区三区| 日韩欧美激情四射| 朝桐光av在线一区二区三区| 日韩欧美不卡一区| 亚洲乱码在线观看| 亚洲精品动漫100p| 无码精品视频一区二区三区 | 青青草视频播放| 不卡av在线网| 日韩中文字幕在线看| 天天干天天草天天射| 亚洲国产精品电影在线观看| 手机看片国产1024| 日韩avvvv在线播放| 国产免费一区视频观看免费 | αv一区二区三区| 成人三级av在线| 国产一区二区不卡视频| 久久不见久久见中文字幕免费| 热舞福利精品大尺度视频| 国产亚洲第一伦理第一区| 亚洲高清在线观看一区| 91精品观看| 69sex久久精品国产麻豆| 国产欧美午夜| 日本888xxxx| 国产一区二区免费看| 中文字幕三级电影| 久久欧美一区二区| 萌白酱视频在线| 亚洲制服丝袜一区| 黄色在线免费观看| 欧美人牲a欧美精品| www天堂在线| 亚洲美女喷白浆| 天堂中文а√在线| 久久人人97超碰精品888| 亚洲va中文在线播放免费| 成人激情在线播放| 牛牛视频精品一区二区不卡| 亚洲 国产 日韩 综合一区| 欧美激情成人在线| 无码人妻h动漫| 国模大尺度一区二区三区| 人体私拍套图hdxxxx| 中文字幕一区二区三区四区不卡| 国产一级片网址| 欧美日韩免费观看一区三区| 国产成人无码www免费视频播放| 亚洲深夜福利网站| 少女频道在线观看免费播放电视剧| 欧美一级淫片播放口| 精品一区二区三区在线观看视频| 欧美第一黄网| 欧美涩涩视频| 亚洲色图 在线视频| 成人av在线资源网站| 来吧亚洲综合网| 欧美性猛交xxxx黑人| 成人av一区二区三区在线观看| 亚洲网站视频福利| 黄色在线观看www| 成人激情视频在线观看| 精品国精品国产自在久国产应用| 91国在线高清视频| 麻豆精品久久久| 精品无人区无码乱码毛片国产 | 日韩有码在线观看| 自拍视频在线看| 国产精品二区二区三区| 午夜精品一区二区三区国产| 精品www久久久久奶水| 成人免费三级在线| 欧美激情精品久久久久久免费| 色婷婷综合久久久| 偷拍精品一区二区三区| 欧美黑人xxxⅹ高潮交| 欧美成人福利| 日本一区高清不卡| 国产精品外国| av免费观看不卡| 亚洲狠狠丁香婷婷综合久久久| 中文字幕一区二区在线视频| 精品亚洲一区二区三区四区五区| 日本成人不卡| 91久久国产自产拍夜夜嗨| 国产精品二区不卡| 男女视频在线看| 中文字幕欧美三区| 中文字幕av第一页| 亚洲日本成人女熟在线观看| 手机av在线| 久久精品日产第一区二区三区精品版| 欧美91视频| 青青草精品在线| 亚洲精品久久久久久国产精华液| 国产精品国产三级国产aⅴ| 中文字幕在线亚洲| 99久久久国产精品免费调教网站| 日韩精品中文字幕视频在线| 国产一级免费观看| 日韩小视频在线观看专区| a视频在线播放| 亚洲一区二区三区毛片| 午夜精品久久| 亚洲区 欧美区| 亚洲大片一区二区三区| 日本高清视频www| 91国产精品电影| 亚洲宅男网av| 天天爱天天操天天干| 中文字幕 久热精品 视频在线| 中文在线字幕免费观| www欧美日韩| 欧美电影院免费观看| 久久这里只有精品8| av动漫一区二区| 男人天堂2024| 日韩最新在线视频| 美国十次综合久久| 黄色一级片黄色| 久久综合狠狠综合| 中文字幕精品一区二区精| 久久午夜a级毛片| 国产伦精品一区二区三区在线播放 | jizz18女人高潮| 91麻豆精品久久久久蜜臀| 国产色婷婷在线| 欧美日本国产精品| 另类的小说在线视频另类成人小视频在线| 欧美a级片免费看| 亚洲成人动漫在线播放| 日韩精品三区| 亚洲天堂第一区| 91美女片黄在线观看91美女| 小泽玛利亚一区二区三区视频| 久久这里有精品视频| 国产+成+人+亚洲欧洲在线| 激情五月开心婷婷| 亚洲三级在线免费| 天堂av在线免费观看| 国产一区欧美二区三区| 伊人久久成人| 免费黄色在线网址| 精品成人a区在线观看| 国产在线|日韩| 成人av在线不卡| 国产精品久久免费看| 天天操天天舔天天干| 国产色视频一区| 欧美专区一区二区三区| 国产女人被狂躁到高潮小说| 国产一区视频在线看| 久久久久无码精品|