1
我有一個活動開始另一個結果。事實是,我需要觸發另一個Activity來獲得這個結果。這可能嗎?從另一個應該返回結果的活動開始活動
作爲示例,活動A爲結果調用活動B,但活動B需要調用活動C以獲取正確的數據。
我不知道當我爲結果啓動Activity C時,Activity B將發送其(不完整)結果給第一個調用活動(Activity A)。
如果可以做到,我該如何處理這些活動的結果?
謝謝!
我有一個活動開始另一個結果。事實是,我需要觸發另一個Activity來獲得這個結果。這可能嗎?從另一個應該返回結果的活動開始活動
作爲示例,活動A爲結果調用活動B,但活動B需要調用活動C以獲取正確的數據。
我不知道當我爲結果啓動Activity C時,Activity B將發送其(不完整)結果給第一個調用活動(Activity A)。
如果可以做到,我該如何處理這些活動的結果?
謝謝!
這很好。只要活動B仍在運行,它將不會觸發任何回到A的任務,直到完成爲止。
啓動A→B→C然後關閉C意味着B的onActivityResult
會觸發,然後關閉B將觸發A的onActivityResult
。
所以在活動B,你需要像一些邏輯:
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == ACTIVITY_C && resultCode == RESULT_XXX) {
// Get the result from C, etc. Whatever you need to do
String stuff = data.getStringExtra("XXX");
Intent output = new Intent();
output.putExtra(XXX, stuff);
setResult(RESULT_XXX, output);
finish();
}
}
然後你就可以趕上,早在活動A.
另一種選擇:如果你發現自己需要跨越很多共享數據的活動和邏輯似乎越來越複雜,您可能會考慮使用類來存儲您可以從所有活動訪問的全局狀態。
感謝@KenWolf,我認爲你的第一個選擇是可行的。我會嘗試一下並告訴你一些事情!再次感謝! – mgrdiez
您的解決方案完美運行@Ken!謝謝! – mgrdiez