溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

重識(shí)Activity——生命周期詳解

發(fā)布時(shí)間:2020-10-15 14:01:22 來(lái)源:網(wǎng)絡(luò) 閱讀:404 作者:finit_xu 欄目:移動(dòng)開(kāi)發(fā)

1. 單個(gè)Activity生命周期
*  顯示狀態(tài)——onCreate()、onStart()、onResume()
* 隱藏狀態(tài)——onPause():部分可見(jiàn)、onStop():隱藏,黑屏狀態(tài)
* 銷毀——onDestroy()


2. 多個(gè)Activity生命周期交互
* 第一個(gè)Activity啟動(dòng)——依次調(diào)用onCreate()、onStart()、onResume ()
* 第二個(gè)Activity啟動(dòng)——第一個(gè)activity調(diào)用onPause (),第二個(gè)activity調(diào)用onCreate ()、onStart()、onResume(),第一個(gè)Activity調(diào)用onStop()
* 再次返回第一個(gè)activity—— 第二個(gè)Activity調(diào)用onPause ()、第一個(gè)Activity調(diào)用onRestart():不用再onCreate()、onStart()、onResume ();此時(shí)第二個(gè)Activity調(diào)用onStop()、onDestroy(),此時(shí)第二個(gè)Activity生命周期結(jié)束


3. Activity生命周期交互設(shè)計(jì)思想


* 例子:當(dāng)處在音樂(lè)播放頁(yè)面時(shí),此時(shí)來(lái)電,音樂(lè)activity調(diào)用onPause (),重寫(xiě)該方法暫停音樂(lè),否則會(huì)影響通話;
* 另一方面,音樂(lè)activity調(diào)用onPause ()后,緊接著調(diào)用onStop(),電話結(jié)束后,再次回到音樂(lè)播放頁(yè)面就是黑屏了


4. 橫豎屏切換


* 切換時(shí)相當(dāng)于創(chuàng)建了一個(gè)新的Activity,原有的activity生命周期結(jié)束
* 切換時(shí),可以通過(guò)onSaveInstanceState 方法中Bundle對(duì)象保存切換前activity信息,然后在onCreate()的Bundle對(duì)象獲取


5. Activity生命周期的應(yīng)用


* onPause ()——添加暫停該頁(yè)面的其他操作
* onResume ()——當(dāng)返回頁(yè)面時(shí),添加恢復(fù)原有頁(yè)面的操作
* onDestroy()——結(jié)束該頁(yè)面時(shí),釋放該頁(yè)面其他操作的資源


6. 啟動(dòng)Activity


* 直接啟動(dòng)

* 只通過(guò)Intent——Intent intent=new Intent(one.this, two.class);
* 輔以Component——Intent intent=new Intent();ComponentName component=new ComponentName(one.this, two.class);  intent.setComponent(component );startActivity(intent);


* 匿名啟動(dòng)

* 在AndroidManifest中對(duì)應(yīng)的activity添加<intent-filter>——》<action android :name=“1”>——》intent.setAction("1");——》startActivity(intent);


* 啟動(dòng)系統(tǒng)常見(jiàn)Activity

* 啟動(dòng)瀏覽器——intent.setAction(Intent.ACTION_VIEW);Uri url=Uri.parse("http://www.imooc.com"); intent.setData(url);startActivity(intent);
* 啟動(dòng)相冊(cè)——intent.setAction(Intent.ACTION_GET_CONTENT);intent.setType(“p_w_picpath/*”);startActivity(intent);
* 發(fā)送短信——intent.setAction(Intent.ACTION_SEND);intent.setType(“text/plain”);intent.putExtra(Intent.EXTRA_TEXT,"hello !");startActivity(intent);
* 打開(kāi)電話——intent.setAction(Intent.ACTION_VIEW );Uri url=Uri.parse("tel:123456"); intent.setData(url); startActivity(intent);
* 其它頁(yè)面可以通過(guò)Android文檔查看Intent

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI