View重繪和內(nèi)存泄露的好像是面試經(jīng)常問(wèn)的問(wèn)題
1. View的刷新:
在需要刷新的地方,使用handle.sendmessage發(fā)送信息,然后在handle的getmessage里面執(zhí)行invaliate或者postinvaliate.
2. GC內(nèi)存泄露
出現(xiàn)情況:
1.數(shù)據(jù)庫(kù)的cursor沒(méi)有關(guān)閉
2.構(gòu)造adapter時(shí),沒(méi)有使用緩存contentview
衍生listview的優(yōu)化問(wèn)題—–減少創(chuàng)建view的對(duì)象,充分使用contentview,可以使用一靜態(tài)類來(lái)優(yōu)化處理getview的過(guò)程/
3.Bitmap對(duì)象不使用時(shí)采用recycle()釋放內(nèi)存
4.activity中的對(duì)象的生命周期大于activity
調(diào)試方法: DDMS==> HEAPSZIE==>dataobject==>[Total Size]
還有其他問(wèn)題,大家歡迎提出阿,可以是整體架構(gòu)的,還有這個(gè)Hal層.
這篇文章會(huì)涉及到以下幾個(gè)內(nèi)容
一 Activity的生命周期
二 讓Activity變成一個(gè)窗口:Activity屬性設(shè)定
三 你后臺(tái)的Activity被系統(tǒng) 回收怎么辦:onSaveInstanceState
四 調(diào)用與被調(diào)用:我們的通信使者 – Intent
一 Activity的生命周期
和其他手機(jī)平臺(tái)的應(yīng)用程序一樣,Android的應(yīng)用程序 的生命周期是被統(tǒng)一掌控的,也就是說(shuō)我們寫的應(yīng)用程序命運(yùn)掌握在別人(系統(tǒng))的手里,我們不能改變它,只能學(xué)習(xí)并適應(yīng)它。
簡(jiǎn)單地說(shuō)一下為什么是這樣:我們手機(jī)在運(yùn)行 一個(gè)應(yīng)用程序的時(shí)候,有可能打進(jìn)來(lái)電話發(fā)進(jìn)來(lái)短信 ,或者沒(méi)有電了,這時(shí)候程序都會(huì)被中斷,優(yōu)先去服務(wù)電話的基本功能 ,另
外系統(tǒng)也不允許你占用太多資源 ,至少要保證電話功能吧,所以資源不足的時(shí)候也就有可能被干掉。
言歸正傳,Activity的基本生命周期如下代碼 所示:
Java 代碼
public
class MyActivity extends Activity {
protected
void onCreate(Bundle savedInstanceState);
protected
void onStart();
protected
void onResume();
protected
void onPause();
protected
void onStop();
protected
void onDestroy();
}
public class MyActivity extends Activity { protected void onCreate(Bundle savedInstanceState); protected void onStart(); protected void onResume(); protected void onPause(); protected void onStop(); protected void onDestroy(); }
你自己寫的Activity會(huì)按需要 重載這些方法,onCreate是免不了的,在一個(gè)Activity正常啟動(dòng)的過(guò)程中,他們被調(diào)用的順序是 onCreate -> onStart -> onResume, 在Activity被干掉的時(shí)候順序是onPause -> onStop -> onDestroy ,這樣就是一個(gè)完整的生命周期,但是有人問(wèn)了 ,程序正運(yùn)行著呢來(lái)電話了,這個(gè)程序咋辦?中止了唄,如果中止的時(shí)候新出的一個(gè)Activity是全屏的那么:onPause->onStop ,恢復(fù)的時(shí)候onStart->onResume ,如果打斷 這個(gè)應(yīng)用程序的是一個(gè)Theme為Translucent 或者Dialog 的Activity那么只是onPause ,恢復(fù) 的時(shí)候onResume 。