在TabActivity中永远不会调用onActivityResult

时间:2012-07-31 11:44:58

标签: android android-activity

我知道有很多相同的问题,但仍未调用OnActivityResult。

这是我的代码

活动A:

        Intent i = new Intent();
        Bundle b = new Bundle();
        b.putString(ActivityB.LINK, ad.getLink());
        i.putExtras(b);
        i.setClass(this, ActivityB.class);
        startActivityForResult(i, 0);

@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data)
    {
        /*handling of result...*/
        super.onActivityResult(requestCode, resultCode, data);
    }

活动B:

@Override
protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.ad_video);
    Bundle b = this.getIntent().getExtras();
    setResult(0);
    link = b.getString(LINK);
    videoView = (VideoView) findViewById(R.id.surface_view);
     videoView.setVideoPath(_link);
     videoView.requestFocus();
     videoView.start();
     videoView.setOnCompletionListener(new OnCompletionListener() {
        public void onCompletion(MediaPlayer mp)
        {
            setResult(0);
            ActivityB.this.finish();
        }
    });
}

无论我做什么,OnActivityResult永远不会被召唤。 基于其他问题

  1. 我把setResult的值设为> 0(0,99)

  2. 在android清单中
  3. 没有launchMode(我也试过放 launchMode to standard)

  4. 感谢您的帮助

4 个答案:

答案 0 :(得分:1)

尝试向结果添加意图,此代码适用于我:

Intent in = new Intent(); 
setResult(101, in);
finish();

答案 1 :(得分:0)

尝试以下代码

Intent returnIntent = new Intent();
returnIntent.putExtra("ProfilePicPath", path);
setResult(RESULT_OK, returnIntent);
finish();

答案 2 :(得分:0)

好的我明白了, 主要问题是我从标签主机中调用了活动。我从包含选项卡的Activity(扩展TabActivity的选项)调用它,它可以工作。

所以简而言之,即使我将每个标签用作活动,但应该调用startActivityForResult的是扩展TabActivity的主要活动。

谢谢大家的帮助

答案 3 :(得分:0)

关于儿童活动,我在儿童活动中使用它

getParent().startActivityForResult(intent, positive_request_code);