如何使用seResult或startActivityForResult从外部App Activity获取有关ActivityResult的数据

时间:2016-08-03 06:08:18

标签: android android-intent onactivityresult startactivityforresult

我有两个单独的应用程序。客户和卖家的应用程序。我想为客户端应用付钱并获得对卖家应用的回复。 无论如何,我在卖家应用程序中启用了深度链接概念。 客户端应用: 它在客户端app.getting详细信息(第一个活动页面)和显示确认(第二个活动)中有三个活动页面,付款是第三个活动。 注意:使用卖家应用程序打开客户端应用程序,从客户端应用程序填写所有详细信息和付款,并向卖家应用程 对于这个客户端我已经为此设置了代码:

Intent object = new Intent();
object.putExtra("data", "3434434343343");
setResult(Activity.RESULT_OK, object);
finish();

卖家应用代码:

protected void onActivityResult(int ResCode, int ReqRes, Intent data) {

super.onActivityResult(ResCode, ReqRes, data);

if (ResCode == 1 && ReqRes == Activity.RESULT_OK && data != null) {

String response = data.getStringExtra("data");

}
}

问题在这里:从客户端使用setResult.then成功传递数据,卖家应用程序活动也成功调用了onActivityResult,但是,Intent数据仅作为NULL传递。因为,这里客户端使用的是多个活动,我正在通过result.thats我的问题。 无论如何从多个链接活动(外部应用程序活动)获取onActivityResult意味着它对我有用。

注意:我找到了一个解决方案,如果两个App有一个活动意味着,它正确的setresult和OnactivityResult正在调用并获取数据。但是,我的方案是否适用于客户端应用程序的多链链接活动。

请帮助我们解决这个问题。 谢谢你的进步

2 个答案:

答案 0 :(得分:1)

根据您上面的用例场景,我认为如果客户端应用程序使用基于Fragment的设置,那么允许进行此类通信的更好的架构。在这里,您可以从卖家应用启动客户活动,让用户导航到那里的不同片段,然后使用setResult()。因为,这是一对一的活动结果设置行为,它应该可以工作。

您可以尝试的其他建议,因为您不希望以片段的方式进行分段,因为用户前往不同的活动,您可以立即在其中调用finish(),然后在最后的活动电话setResult()。这可能不会起作用,但是,我的一小部分说它可能:)。

答案 1 :(得分:-1)

您可以从ThirdActivity导航至FirstActivity,然后使用onNewIntent的{​​{1}}方法返回卖家应用。

完成所有三个程序后,您的客户端应用程序应具有以下堆栈。

FirstActivity

你的FirstActivity -> SecondActivity -> ThirdActivity 位于堆栈顶部。您的ThirdActivity可以使用以下代码

导航至ThirdActivity
FirstActivity

然后在Intent toFirstIntent = new Intent(this, FirstActivity.class); toFirstIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); toFirstIntent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP); startActivity(toFirstIntent); finish(); 中,您可以设置数据并返回卖家应用。

FirstActivity