依次打開Activity A1--A2--A3--A4 這時候你如果想從第四個返回到第一Activity 的時候,就用到了startActivityForResult 這個方法了。
- startActivityForResult(intent, requestCode)
兩個參數 一個是第一好的意圖對象,另一個是請求代碼。
A1 的 intent 定義是
- Intent intent = new Intent(); intent.setClass(this,A2.class);
指定一個 int 作爲 requestCode 比如 startActivityForResult(intent, 1);
A2 的 intent 定義是
- Intent intent = new Intent(); intent.setClass(this,A3.class);
指定一個 int 作爲 requestCode 比如 startActivityForResult(intent, 1);
A3 的 intent 定義是
- Intent intent = new Intent(); intent.setClass(this,A4.class);
指定一個 int 作爲 requestCode 比如 startActivityForResult(intent, 1);
A4 添加一個返回按鈕 點擊的事件裏寫
- public void 點擊事件{
- //this.setResult(int resultCode)
- this.setResult(10)
- this.finish();
- }
這時候點擊A4的返回按鈕時候,先設置 resultCode 給上一個 A3 來判斷,然後關閉A4
關閉A4觸發A3裏面的方法,onActivityResult(int requestCode, int resultCode, Intent data)
在這個方法裏面做判斷就行了。
前兩個參數分別是 我們設置的 requestCode 和 resultCode
- protected void onActivityResult(int requestCode, int resultCode, Intent data) {
- // TODO Auto-generated method stub
- super.onActivityResult(requestCode, resultCode, data);
- if(requestCode == 1&& resultCode == 10){
- this.setResult(10);
- this.finish();
- }
- }
此方法先匹配 requestCode 和 resultCode 然後設置 resultCode 在關閉A3,想同的道理關閉A2
這樣就返回A1了。