我有3個活動:A,B和C如何知道什麼活動返回
從AI得到了B和從AI去C.
A --- B
|
|
C
當我回歸A從這兩項活動中,我按下後退按鈕。
從A,我怎麼知道堆棧中有什麼活動?我怎麼知道是B還是C?
UPDATE - - 我想知道如何知道什麼活動按onBackPress();我不使用B或C的startActivity;
我有3個活動:A,B和C如何知道什麼活動返回
從AI得到了B和從AI去C.
A --- B
|
|
C
當我回歸A從這兩項活動中,我按下後退按鈕。
從A,我怎麼知道堆棧中有什麼活動?我怎麼知道是B還是C?
UPDATE - - 我想知道如何知道什麼活動按onBackPress();我不使用B或C的startActivity;
只要使用Android的請求代碼與startActivityForResult()。在活動A中,用不同的請求代碼調用B或C.首先,定義代碼:
private static final int ACTIVITY_B_REQUEST = 100;
private static final int ACTIVITY_C_REQUEST = 200;
然後開始行動。
B:
Intent intent = new Intent(this, ActivityB.class);
startActivityForResult(intent, ACTIVITY_B_REQUEST);
和C:
Intent intent = new Intent(this, ActivityC.class);
startActivityForResult(intent, ACTIVITY_C_REQUEST);
然後,仍然在你ActivityA,重寫onActivityResult(),並檢查哪個請求代碼時,被按下後退按鈕返回:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case ACTIVITY_B_REQUEST:
//returned from ActivityB
break;
case ACTIVITY_C_REQUEST:
//returned from ActivityC
break;
default:
break;
}
}
不需要傳遞任何東西從B或C - 它已經由Android的照顧。
當啓動活動A和C時,請使用startActivityForResult(...)
而不是常規startActivity(...)
。您可以爲ACTIVITY_ID,ACTIVITY_B和ACTIVITY_C創建靜態整數變量。當您的用戶退出B或C時,請使用相應的ID變量呼叫setResult(...)
。有關此方法的更多信息,請參見活動顯影劑DOC:http://developer.android.com/reference/android/app/Activity.html
開始活動B & C作爲startActivityForResult,使用的setResult方法用於將數據發送回從B/C和在接收的數據作爲onActivityResult。
How to pass data from 2nd activity to 1st activity when pressed back? - android
我想知道如何知道這在B和C按onBackPressed()時。我沒有使用startActivity(),只有onBackPressed()。 – Roland
在'onBackPressed(...)'調用'setResult(...)'。在活動A中覆蓋'onActivityResult(...)'在那裏獲取結果。 –