2016-06-10 41 views
0

我们的Android团队一直在整合最近宣布的Register SDK,并且遇到了几个问题。无法使用Android的Square Register SDK重新启动交易

我们在重复启动事务时(例如,第一次尝试失败时)会看到一些奇怪的行为。

具体而言,在安装了Square Register应用程序但未登录的情况下进行测试时,ChargeRequest意图按照预期的方式启动活动:第一次:它简要地启动注册应用程序,然后将用户返回到调用应用程序,用户被通知他或她没有登录。

但是,如果我们退出启动Square事务并再次启动整个流程的活动,则在尝试启动另一个Square事务时不会收到任何响应。只有当我们杀了应用程序,冷启动,并重新启动过程,原来的(和预期的)行为重新发生。

任何想法或建议在这里将不胜感激。

谢谢!

+0

嗨!我开始研究这个问题,并会在我知道更多信息时跟进。同时,您是否可以确认您始终使用“startActivityForResult()”,并且从不使用普通的“startActivity()”?谢谢。 –

回答

0

当你调用startActivityForResult()上完成某个活动实例,Android的自动切换到startActivity()呼叫并记录以下内容:

startActivity called from non-Activity context; forcing Intent.FLAG_ACTIVITY_NEW_TASK for: Intent { act=com.squareup.register.action.CHARGE cmp=com.squareup.eng/com.squareup.ui.ApiActivity (has extras) } 

的意思是叫应用程序无法返回一个活动的结果,而且很难让来电者知道什么是错的。这是导致此问题的根源问题。