Android的Application的生命周期方法
onCreate()
App創(chuàng)建的時(shí)候調(diào)用,Application對(duì)象會(huì)從App創(chuàng)建一直存活到App被殺死
注意:
一般開(kāi)發(fā)App(應(yīng)用)的時(shí)候會(huì)在Application的onCreate()中進(jìn)行大量的三方框架初始化操作,這樣是不正確的,因?yàn)樵诶鋯?dòng)一個(gè)App的情況下,是會(huì)先走Application的onCreate(),走完之后會(huì)走啟動(dòng)的Activity的onCreate(),如果Application的onCreate()內(nèi)初始化過(guò)重(時(shí)間過(guò)長(zhǎng)),則會(huì)使Activity的初始化延后,導(dǎo)致點(diǎn)擊圖標(biāo)冷啟動(dòng)時(shí)會(huì)有一段時(shí)間沒(méi)反應(yīng)或白屏一段時(shí)間.
解決方法有很多種,目前我使用的是在第一個(gè)Activity的onCreate()調(diào)用完成后發(fā)送Handler消息去手動(dòng)延時(shí)調(diào)用Application內(nèi)的三方初始化操作,可以有效避免上述問(wèn)題
onTerminate()
該方法見(jiàn)名知意是程序終止的時(shí)候執(zhí)行
但是經(jīng)測(cè)試和網(wǎng)上搜索答案發(fā)現(xiàn),該方法只能在模擬器上生效,真機(jī)不生效(有什么用...)
ps:順帶說(shuō)一嘴,如果App是被"按下多任務(wù)鍵(或長(zhǎng)按home鍵),然后滑動(dòng)殺死"的,則不會(huì)走Activity的onDestroy(),這個(gè)我還沒(méi)找到解決方法,有解決方案的同學(xué)可以提一下,謝謝
pps:經(jīng)過(guò)下面一位老哥的評(píng)論,我去測(cè)了一下,華為(榮耀)手機(jī)不管放在哪都沒(méi)有執(zhí)行onDestroy(),而小米不管在哪都執(zhí)行了onDestroy(),包括全殺,我覺(jué)得這個(gè)可能無(wú)解了,因?yàn)檫@個(gè)完全跟定制的系統(tǒng)有關(guān),\無(wú)奈
onLowMemory()
低內(nèi)存的時(shí)候執(zhí)行
onTrimMemory()
程序在內(nèi)存清理的時(shí)候執(zhí)行
onConfigurationChanged()
監(jiān)聽(tīng)App配置之類(lèi)的信息,如屏幕旋轉(zhuǎn),語(yǔ)言變更等
然后還有一個(gè)額外的,可以監(jiān)聽(tīng)全部Activity的生命周期
在Application的onCreate()中調(diào)用
registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks() {@Overridepublic void onActivityCreated(Activity activity, Bundle savedInstanceState) {}@Overridepublic void onActivityStarted(Activity activity) {}@Overridepublic void onActivityResumed(Activity activity) {}@Overridepublic void onActivityPaused(Activity activity) {}@Overridepublic void onActivityStopped(Activity activity) {}@Overridepublic void onActivitySaveInstanceState(Activity activity, Bundle outState) {}@Overridepublic void onActivityDestroyed(Activity activity) {}});總結(jié)
以上是生活随笔為你收集整理的Android的Application的生命周期方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Kotlin进行异步操作
- 下一篇: 写一个逻辑清晰的startActivit