2014-04-02 166 views
0

我的問題更多的是討論如何重新構建我的項目,或者解決這種情況。onActivityResult - 使用嵌套活動

我有以下架構: MainActivity,帶有TabHost,加載每個現有選項卡的活動。所以,第一個選項卡IM通話/打開FirstTabActivity,這FirstTabActivity被調用另一個活動(挑選一些照片)稱爲GalleryPickActvity

這是啥子我有: FirstTabActivity

Intent intent = new Intent(CreateCommentsActivity.this, SelectPicturesActivity.class); 
startActivityForResult(intent, 1); 

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 

    super.onActivityResult(requestCode, resultCode, data); 

    Log.i("TAG", "onActivityResult");  
} 

GalleryPickActvity

Intent intent = new Intent(GalleryPickActvity.this, 
          FirstTabActivity.class); 
setResult(Activity.RESULT_OK, intent); 
finish(); 

方法:onActivityResult永遠不會被調用,我猜是因爲即時通訊使用嵌套活動,所以結果會丟失。

所以我有2個問題:

  1. 即使它不是最好的方法(活動 - >活動 - >活動)我怎麼能解決這個問題?

  2. 構建這種情況的最佳方式是什麼?我需要保持所有Tabs活動中的狀態,並且我可以通過活動(現在的方式)來實現這一點。

回答

0

那麼,如果你想打開你可以爲了知道這一切是正確的使用只是startActivity()一些參數的第三個活動。是否有任何特殊原因讓您在第三次活動中使用onActivityResult()而不從第三次活動中撥打startActivityForResult(...)

+0

調用startActivityForResult()和onActivityResult()的活動是第二個活動。 – Bugdr0id

+0

然後只需使用'setResult(Activity.Result_OK); finish();'如果你正在回到前一個活動,你不需要這個意圖。 – zozelfelfo

+0

,但onActivityResult()方法永遠不會被調用。 – Bugdr0id