重識Activity——生命週期詳解

1. 單個Activity生命週期
*  顯示狀態——onCreate()、onStart()、onResume()
* 隱藏狀態——onPause():部分可見、onStop():隱藏,黑屏狀態
* 銷燬——onDestroy()


2. 多個Activity生命週期交互
* 第一個Activity啓動——依次調用onCreate()、onStart()、onResume ()
* 第二個Activity啓動——第一個activity調用onPause (),第二個activity調用onCreate ()、onStart()、onResume(),第一個Activity調用onStop()
* 再次返回第一個activity—— 第二個Activity調用onPause ()、第一個Activity調用onRestart():不用再onCreate()、onStart()、onResume ();此時第二個Activity調用onStop()、onDestroy(),此時第二個Activity生命週期結束


3. Activity生命週期交互設計思想


* 例子:當處在音樂播放頁面時,此時來電,音樂activity調用onPause (),重寫該方法暫停音樂,否則會影響通話;
* 另一方面,音樂activity調用onPause ()後,緊接着調用onStop(),電話結束後,再次回到音樂播放頁面就是黑屏了


4. 橫豎屏切換


* 切換時相當於創建了一個新的Activity,原有的activity生命週期結束
* 切換時,可以通過onSaveInstanceState 方法中Bundle對象保存切換前activity信息,然後在onCreate()的Bundle對象獲取


5. Activity生命週期的應用


* onPause ()——添加暫停該頁面的其他操作
* onResume ()——當返回頁面時,添加恢復原有頁面的操作
* onDestroy()——結束該頁面時,釋放該頁面其他操作的資源


6. 啓動Activity


* 直接啓動

* 只通過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);


* 匿名啓動

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


* 啓動系統常見Activity

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章