【问题标题】:onActivityResult is never called in TabActivity在 TabActivity 中永远不会调用 onActivityResult
【发布时间】:2012-07-31 11:44:57
【问题描述】:

我知道有很多相同的问题,但仍然没有调用 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 manifest 中没有 launchMode(我也试过把 启动模式到标准)

感谢您的帮助

【问题讨论】:

  • 你确定不输入onActivityResult?也尽量不要使用 0,这应该不是问题,但我总是在我的代码中避免它。 (作为结果/请求代码)
  • 是的,我确定,我也试过 setResult(99) 同样的问题,我的活动是 tabActivity 的活动,如果这会导致问题
  • 重要的是,如果您在选项卡 AFAIK 之间切换,您不会完成活动。
  • 顺便说一句,我不是说在 setResult 中,我是说在 requestcode 中
  • 我在requestCode中也改了,activityA是一个tab,而activityB只是里面调用的一个activity。

标签: android android-activity


【解决方案1】:

尝试在结果中添加一个意图,此代码对我有用:

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

【讨论】:

    【解决方案2】:

    试试下面的代码

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

    【讨论】:

      【解决方案3】:

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

      简而言之,即使我将每个选项卡用作一个活动,
      应该调用 startActivityForResult 的活动是扩展 TabActivity 的主要活动。

      感谢大家的帮助

      【讨论】:

        【解决方案4】:

        在子活动上,我用在子活动上

        getParent().startActivityForResult(intent, positive_request_code);
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-08-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多