Android的Application的生命周期方法
onCreate()
App創建的時候調用,Application對象會從App創建一直存活到App被殺死
注意:
一般開發App(應用)的時候會在Application的onCreate()中進行大量的三方框架初始化操作,這樣是不正確的,因為在冷啟動一個App的情況下,是會先走Application的onCreate(),走完之后會走啟動的Activity的onCreate(),如果Application的onCreate()內初始化過重(時間過長),則會使Activity的初始化延后,導致點擊圖標冷啟動時會有一段時間沒反應或白屏一段時間.
解決方法有很多種,目前我使用的是在第一個Activity的onCreate()調用完成后發送Handler消息去手動延時調用Application內的三方初始化操作,可以有效避免上述問題
onTerminate()
該方法見名知意是程序終止的時候執行
但是經測試和網上搜索答案發現,該方法只能在模擬器上生效,真機不生效(有什么用...)
ps:順帶說一嘴,如果App是被"按下多任務鍵(或長按home鍵),然后滑動殺死"的,則不會走Activity的onDestroy(),這個我還沒找到解決方法,有解決方案的同學可以提一下,謝謝
pps:經過下面一位老哥的評論,我去測了一下,華為(榮耀)手機不管放在哪都沒有執行onDestroy(),而小米不管在哪都執行了onDestroy(),包括全殺,我覺得這個可能無解了,因為這個完全跟定制的系統有關,\無奈
onLowMemory()
低內存的時候執行
onTrimMemory()
程序在內存清理的時候執行
onConfigurationChanged()
監聽App配置之類的信息,如屏幕旋轉,語言變更等
然后還有一個額外的,可以監聽全部Activity的生命周期
在Application的onCreate()中調用
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) {}});總結
以上是生活随笔為你收集整理的Android的Application的生命周期方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Kotlin进行异步操作
- 下一篇: 写一个逻辑清晰的startActivit