2014-04-02 60 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