Android:onActivityResult()不调用startActivityForResult

时间:2011-01-28 13:08:45

标签: android android-activity

我有一个名为Main的活动。我使用Sub从此Main活动中调用了另一项活动startActivityForResult()。我想使用Sub函数获取此onActivityResult()活动的结果。

我可以致电Sub活动。但是当从Sub活动返回时,它不会调用onActivityResult()函数。所以我无法得到Sub活动的结果。

实际上,我的Main活动是使用MainGroup功能从startActivity()活动开始的,该功能扩展了ActivityGroup

有没有办法在不调用onActivityResult()的情况下获取活动结果?

被修改

实际上我正在调用PayPal Preapprovals的活动。我正在调用的活动是在PayPla库(.jar文件)上。所以我不能修改那个活动。当我在没有ActivityGroup的另一个应用程序中实现它时,这很正常

请帮帮我..

谢谢......

2 个答案:

答案 0 :(得分:1)

要调用onActivityResult()方法,您必须确保 requestCode requestCode 匹配(例如 YOUR_REQUEST_CODE )用于PreapprovalIntent:

  Intent preapproveIntent = PayPal.getInstance().preapprove(
      preapproval, getBaseContext());
  preapproveIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
  startActivityForResult(preapproveIntent, YOUR_REQUEST_CODE);

所以在你的onActivityResult()中你应该有类似的东西:

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

    switch (resultCode) {
      case Activity.RESULT_OK:
        if (requestCode == YOUR_REQUEST_CODE) {
          Log.i("RESULT", "IT WORKS");
        }
        break;

      default:
        break;
    }
  }

它应该有效,但我实际上遇到了Activity结果的问题:我的代码调用 Activity.RESULT_OK 而不是onActivityResult()中的 Activity.RESULT_CANCELED }。这真的很奇怪,因为我确信我的预批准程序有效。甚至很奇怪,因为只要显示PayPal活动就会调用onActivityResult()代码。

很抱歉告诉你这个,但PayPals的API和文档很乱。如果你们中的一些人有同样的问题,请告诉我你是如何解决的(如果你解决了这个问题; - ))

答案 1 :(得分:0)

我认为你正在做错误的实现。如果你想获得sub的结果,你必须为子活动编写startActivityForResult()并从main获取活动结果