隱式意圖和顯式意圖
顯式:【啓動自己程序內部的界面】
startActivity(new Intent(this , xxx.class));
隱式: 【一般是用來啓動其他應用程序的界面】
startActivity(intent); intent.setAction("包名.ACTIONNAME"); //如果分類中有默認的,那麼此處可以不用寫category intent.setData(Uri.parse("")); startActivity(intent);
數據傳遞
簡單數據:
Intent intent = new Intent(this , xxx.class);
intent.putExtra(“name” , “zhangsan”);
startActivity(intent);-------------------------------------------- Intent intent = getIntent(); intent.getStringExtra("name");
對象數據:
1 . Serializable
2 . Parcelable
啓動界面等待結果:
1. startActivityForResult(requestCode , intent);
2. 下一個界面設置返回的數據
setResult(resultCod , data);
3. 關閉下一個界面
finish();
4. 重寫onActivityResult()接收數據
requestCode:
請求碼, 用來區分當前的界面有多個請求出去,當
數據返回的時候可以用請求碼去判別到底是誰返回了數據
resultCod:
結果碼, 下一個界面可能返回不同類型的數據,
那麼可以根據結果碼去判定。
生命週期
onCreate【創建】—onStart【可見】–onResume【獲取焦點】 - onPause【失去焦點】 — onStop 【不可見】–onDestroy【銷燬】啓動模式
standard
singleTop
只要當前啓動的界面有實例位於棧頂,那麼將不會再次創建實例。
singleTask
如果啓動的界面在棧中存在實例,那麼將直接複用該實例,並且:
把該實例與棧頂之間的其他實例全部移除掉。
singleInstance
界面的實例將存放在一個獨立的棧中,並且這個棧有且只能有它自己一個人。
以後要想顯示該界面,那麼僅僅是需要切換顯示不同的任務棧即可。
思維導圖地址:
http://naotu.baidu.com/file/08dea9e3d2e558030c38c155a9fcec1c?token=ea791326e9b8fd9d