android面試時生命周期與handler、HandlerThread

android面試時生命周期與handler、HandlerThread

ID:40545749

大小:31.50 KB

頁數(shù):3頁

時間:2019-08-04

android面試時生命周期與handler、HandlerThread_第1頁
android面試時生命周期與handler、HandlerThread_第2頁
android面試時生命周期與handler、HandlerThread_第3頁
資源描述:

《android面試時生命周期與handler、HandlerThread》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。

1、關(guān)于activity:生命周期用戶進(jìn)入A界面調(diào)用A的(初始化信息onCreate、可見onStart、人機交互onResume)由A通過Intent完成跳轉(zhuǎn)進(jìn)入B時調(diào)用A的(onPause)然后調(diào)用B的(初始化信息onCreate、可見onStart、人機交互onResume)如果A的界面完全不可見則會調(diào)用A的onStop由B返回A時調(diào)用B的onPause,然后調(diào)用A的(初始化信息onRestart、可見onStart、人機交互onResume)調(diào)用B的onStop再調(diào)用B的onDestroy銷毀B,android的緩存是不可逆的

2、,只能回退不能向前,在activity的生命周期中,只要離開了可見階段,或者說失去了焦點,activity就很可能被進(jìn)程終止了被KILL掉了,這時候,就需要有種機制,能保存當(dāng)時的狀態(tài),這就是savedInstanceState的作用。當(dāng)一個Activity在PAUSE時,被kill之前,它可以調(diào)用onSaveInstanceState()來保存當(dāng)前activity的狀態(tài)信息(在paused狀態(tài)時,要被KILLED的時候)。用來保存狀態(tài)信息的Bundle會同時傳給兩個method,即onRestoreInstanceState()a

3、ndonCreate().關(guān)于線程與handlerHandler: Handler在android里負(fù)責(zé)發(fā)送和處理消息。它的主要用途有:  1)按計劃發(fā)送消息或執(zhí)行某個Runnanble(使用POST方法);2)從其他線程中發(fā)送來的消息放入消息隊列中,避免線程沖突(常見于更新UI線程)publicclassDemoHandlerextendsActivity{/**Calledwhentheactivityisfirstcreated.*/privateButtonbtn01,btn02;@Overridepublicvoidon

4、Create(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);btn01=(Button)findViewById(R.id.Button01);btn02=(Button)findViewById(R.id.Button02);btn01.setOnClickListener(newOnClickListener(){@OverridepublicvoidonClick(Viewv){//執(zhí)行把線

5、程添加到主線程中handler.post(update);}});btn02.setOnClickListener(newOnClickListener(){@OverridepublicvoidonClick(Viewv){//執(zhí)行把線程從主線程移除任務(wù)handler.removeCallbacks(update);}});}//創(chuàng)建Handler對象Handlerhandler=newHandler();//將要執(zhí)行的操作寫在線程對象的run方法當(dāng)中Runnableupdate=newRunnable(){@Overridep

6、ublicvoidrun(){//TODOAuto-generatedmethodstubSystem.out.println("000");//每三秒執(zhí)行一次update方法即從新執(zhí)行該方法handler.postDelayed(update,3000);}};}(第一步創(chuàng)建一個Handler對象,第二步寫一個Runnable線程,實現(xiàn)里面的run方法,在run方法中handler的postDelayed方法(每3000毫秒啟動一次update方法)第三步給控件btn一個監(jiān)聽,調(diào)用handler.psot和handler.rem

7、oveCallbacks方法壓入線程和移除線程。這一個過程不存在創(chuàng)建新線程的行為,只是完成的調(diào)用)publicclassHandlerThreadDemoextendsActivity{@OverrideprotectedvoidonCreate(BundlesavedInstanceState){//TODOAuto-generatedmethodstubsuper.onCreate(savedInstanceState);setContentView(R.layout.main);System.out.println("act

8、ivityId-->"+Thread.currentThread().getId());//創(chuàng)建一個HandlerThread對象,HandlerThreadht=newHandlerThread("handler_thread");ht.star

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。