-
Activity的生命周期
Activity Start
package com.vayne.routertest; import android.app.Activity; import android.os.Bundle; import android.support.annotation.Nullable; import butterknife.ButterKnife; /** * @Author: chupengda * @CreateDate: 2017/8/6 * @Description: BaseActivity */ public class BaseActivity extends Activity { /**Activity被創(chuàng)建時(shí)調(diào)用**/ @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); ButterKnife.bind(this); } /**Activity被創(chuàng)建/從后臺(tái)重新回到前臺(tái)時(shí)調(diào)用**/ @Override protected void onStart() { super.onStart(); } /**從后臺(tái)重新回到前臺(tái)時(shí)調(diào)用**/ @Override protected void onRestart() { super.onRestart(); } /**Activity被創(chuàng)建時(shí)被覆蓋后/從后臺(tái)重新回到前臺(tái)時(shí)調(diào)用**/ @Override protected void onResume() { super.onResume(); } /**此時(shí)Activity is running**/ /**被覆蓋到下面或鎖屏?xí)r調(diào)用**/ @Override protected void onPause() { super.onPause(); //有可能在執(zhí)行完onPause或onStop后,系統(tǒng)資源緊張將Activity殺死,所以有必要在此保存持久數(shù)據(jù) } /**退出Activity/跳轉(zhuǎn)到其他Activity時(shí)調(diào)用**/ @Override protected void onStop() { super.onStop(); } /**退出Activity時(shí)調(diào)用**/ @Override protected void onDestroy() { super.onDestroy(); } /**此時(shí)Activity is shutdown**/ }其他方法
onSaveInstanceState、onRestoreInstanceState()并不是生命周期方法,它們并不一定會(huì)被觸發(fā)。a. onSaveInstanceState當(dāng)應(yīng)用遇到意外情況(如:內(nèi)存不足)由系統(tǒng)銷毀一個(gè)Activity時(shí),onSaveInstanceState() 會(huì)被調(diào)用。但是當(dāng)用戶主動(dòng)去銷毀一個(gè)Activity時(shí),例如在應(yīng)用中按返回鍵,onSaveInstanceState()就不會(huì)被調(diào)用。
b.通常onSaveInstanceState()只適合用于保存一些臨時(shí)性的狀態(tài),而onPause()適合用于數(shù)據(jù)的持久化保存。
/** *調(diào)用onSaveInstanceState的時(shí)機(jī)總會(huì)發(fā)生在onStop之前, *至于調(diào)用時(shí)機(jī)會(huì)不會(huì)發(fā)生在onPause方法之前, *那就說不定了,這個(gè)沒有固定的順序可言, *正常情況下一般onSaveInstanceState不會(huì)被調(diào)用。 */ @Override protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); //被摧毀前緩存一些數(shù)據(jù) outState.putString("name", "chupengda"); } private String name; /** *在onStart之后調(diào)用 */ @Override protected void onRestoreInstanceState(Bundle savedInstanceState) { super.onRestoreInstanceState(savedInstanceState); //被重新創(chuàng)建后恢復(fù)緩存的數(shù)據(jù) name = savedInstanceState.getString("name"); } -
Fragment的生命周期
package com.vayne.routertest; import android.app.Fragment; import android.content.Context; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; /** * @Author: chupengda * @CreateDate: 2017/8/8 * @Description: */ public class BaseFragment extends Fragment{ /**對(duì)應(yīng)Activity的onCreate**/ /**當(dāng)Fragment與Activity發(fā)生關(guān)聯(lián)時(shí)調(diào)用**/ @Override public void onAttach(Context context) { super.onAttach(context); } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } /**創(chuàng)建該Fragment的視圖**/ @Override public View onCreateView(LayoutInflater inflater,ViewGroup container, Bundle savedInstanceState) { /**創(chuàng)建視圖的方法 * View view = inflater.inflate(R.layout.fragment_title, container, false); * return view; */ return super.onCreateView(inflater, container, savedInstanceState); } /**宿主Activity創(chuàng)建完畢時(shí)調(diào)用**/ @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); } /**其他周期方法 * onStart() * onResume() * onPasue() * onStop() * 同Activity * Fragment沒有onRestart()方法 */ /**對(duì)應(yīng)Activity的onDestroy**/ /**與onCreateView想對(duì)應(yīng),當(dāng)該Fragment的視圖被移除時(shí)調(diào)用**/ @Override public void onDestroyView() { super.onDestroyView(); } @Override public void onDestroy() { super.onDestroy(); } /**與onAttach相對(duì)應(yīng),當(dāng)Fragment與Activity關(guān)聯(lián)被取消時(shí)調(diào)用**/ @Override public void onDetach() { super.onDetach(); } } -
Service的生命周期
主要說明內(nèi)部調(diào)用方法和外部調(diào)用方法的關(guān)系
-
startServic()
-
startServic() 啟用Service服務(wù)
image -
stopService() 關(guān)閉Service服務(wù)
image
-
-
bindService()
-
bindService() 綁定Service服務(wù)
image -
綁定Service服務(wù)() 解綁Service服務(wù)
image
-
-
注意
- startService()和stopService()只能開啟和關(guān)閉Service,無法操作Service
bindService()和unbindService()可以操作Service- startService開啟的Service,調(diào)用者退出后Service仍然存在;
BindService開啟的Service,調(diào)用者退出后,Service隨著調(diào)用者銷毀
-
Android 中的生命周期
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
相關(guān)閱讀更多精彩內(nèi)容
- 懶得處理樣式了, 將就著看吧. 官網(wǎng)地址: https://developer.android.com/topic...
- 環(huán)信官方Demo源碼分析及SDK簡單應(yīng)用 環(huán)信官方Demo源碼分析及SDK簡單應(yīng)用-ChatDemoUI3.0 環(huán)...
- Fragment概述 Fragment是Activity中用戶界面的一個(gè)行為或者說是一部分。主要是支持大屏幕上動(dòng)態(tài)...
- Android: 五種布局: FrameLayout 、 LinearLayout 、 AbsoluteLayou...
- 結(jié)束了本命年的本命月,一切都沒有變。 昨天通知我工作的事可能要等到年底了,我也就淡然了,正好給我這閑時(shí)間,去體會(huì)各...



