我有两个单独的应用程序。客户和卖家的应用程序。我想为客户端应用付钱并获得对卖家应用的回复。 无论如何,我在卖家应用程序中启用了深度链接概念。 客户端应用: 它在客户端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正在调用并获取数据。但是,我的方案是否适用于客户端应用程序的多链链接活动。
请帮助我们解决这个问题。 谢谢你的进步
答案 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