開發(fā)APP項(xiàng)目對(duì)于BaseActivity設(shè)計(jì)步驟詳解,深圳APP開發(fā)公司首先聊聊應(yīng)用級(jí)別的BaseActivity設(shè)計(jì),應(yīng)用級(jí)別的BaseActivity作為各模塊Activity的基類,主要是定義一些公共的行為,或各功能模塊Activity都可能會(huì)用到的方法。這樣也可以起到規(guī)范開發(fā)人員開發(fā)行為的作用,包括以下內(nèi)容。
(1)如果APP只支持豎屏或橫屏,可以在BaseActivity設(shè)置好,
這樣不用每個(gè)Activity都需要自己設(shè)置。
(2)記錄各個(gè)生命周期方法執(zhí)行的Log。
(3)在創(chuàng)建Activity時(shí),基本都需要做以下三件事:初始化變量、初始化View和獲取數(shù)據(jù),可以在BaseActivity中定義以下方法。initVariables():初始化變量,包括Intent帶的數(shù)據(jù)和Activity內(nèi)的變量。initViews():加載layout布局文件、初始化控件和為控件掛上事件方法。loadData():從服務(wù)器或本地獲取數(shù)據(jù)。
(4)在執(zhí)行OnDestory方法時(shí),釋放Activity使用的圖片或視頻等資源占據(jù)的內(nèi)存。
(5)增加Activity到Activity列表,及從列表中移出Activity,方便Activity列表的管理。
(6)在執(zhí)行OnPause方法時(shí),保存數(shù)據(jù)到本地,防止APP的內(nèi)存
被系統(tǒng)回收時(shí)數(shù)據(jù)丟失。
(7)在執(zhí)行OnResume方法時(shí),讀取保存到本地的數(shù)據(jù)。
(8)當(dāng)收到系統(tǒng)發(fā)出的內(nèi)存不足的信號(hào)時(shí),釋放當(dāng)前Activity使用的內(nèi)存。對(duì)于各模塊的Activity需要實(shí)現(xiàn)的方法,在基類中都定義成虛方法,強(qiáng)制子類實(shí)現(xiàn)。如果確實(shí)不需要實(shí)現(xiàn),可以在子類定義空的方法體,這樣可能會(huì)多寫空方法,但可以強(qiáng)制開發(fā)人員必須實(shí)現(xiàn)相關(guān)方法,避免產(chǎn)生許多問題。示例代碼如下:abstract class BaseActivity extends AppCompatActivity implements ComponentCallbacks2 { { private String TAG = "BaseActivity"; @ Override protected void onCreate( Bundle savedInstanceState) { super. onCreate( savedInstanceState);
if (getRequestedOrientation() != ActivityInfo. SCREEN_ ORIENTATION_ PORTRAIT) { setRequestedOrientation( ActivityInfo. SCREEN_ ORIENTATION_ PORTRAIT); } ActivityList. addActivity( this); } @ Override protected void onStart() { super. onStart(); EamLog. v( TAG, "onStart"); } @ Override protected void onResume() { super. onResume(); restoreData(); EamLog. v( TAG, "onResume"); }
@ Override protected void onPause() { super. onPause(); saveData(); EamLog. v( TAG, "onPause"); } @ Override protected void onStop() { super. onStop(); EamLog. v( TAG, "onStop"); } @ Override protected void onDestroy() { releaseMemory( 0); ActivityList. removeActivity( this); super. onDestroy();
EamLog. v( TAG, "onDestroy"); } /** * Release memory when the UI becomes hidden or when system resources become low. * @param level the memory- related event that was raised. */ public void onTrimMemory( int level) { releaseMemory( level); } abstract void initVariables(); abstract void initViews(); abstract void loadData(); abstract void saveData(); abstract void restoreData(); abstract void releaseMemory( int memoryLevel); }
好了,APP開發(fā)公司本文關(guān)于“APP項(xiàng)目設(shè)計(jì)關(guān)于BaseActivity步驟詳解”知識(shí)就分享到這里,謝謝關(guān)注,博納網(wǎng)絡(luò)編輯整理。