在android活动测试中,我如何完成我的主要活动启动的另一个活动?
我正在为我们用3个按钮编写的活动编写一个活动测试。其中2个按钮启动其他活动 我可以编写一个模拟按钮按下的测试,然后检查所需的活动是否正在运行,但我不能从第二个活动中后退。第二个活动停留在前端,并阻止假定第一个活动正在运行的其他测试正常工作。他们只是有点僵硬 我有一个对第一个活动的引用,但这是我需要调用finish()的第二个活动。有办法做到这一点吗 编辑:在此要点中,我添加了一些实际的源代码来说明我的问题:在android活动测试中,我如何完成我的主要活动启动的另一个活动?,android,testing,android-activity,Android,Testing,Android Activity,我正在为我们用3个按钮编写的活动编写一个活动测试。其中2个按钮启动其他活动 我可以编写一个模拟按钮按下的测试,然后检查所需的活动是否正在运行,但我不能从第二个活动中后退。第二个活动停留在前端,并阻止假定第一个活动正在运行的其他测试正常工作。他们只是有点僵硬 我有一个对第一个活动的引用,但这是我需要调用finish()的第二个活动。有办法做到这一点吗 编辑:在此要点中,我添加了一些实际的源代码来说明我的问题: 它特别是关于测试活动。在生产代码中,一切都很好。您需要一种方式让您的活动彼此通信,以便一
它特别是关于测试活动。在生产代码中,一切都很好。您需要一种方式让您的活动彼此通信,以便一个活动可以告诉另一个活动完成。有几种方法可以实现这一点。一种方法是在我的应用程序中创建服务;我的“第二个”活动将连接到此服务以注册接收消息的方式,而我的主要活动将连接以提供消息。在活动1中添加以下内容以启动活动2
Intent myIntent = new Intent(view.getContext(), Activity2.class);
startActivityForResult(myIntent, 0);
Intent intent = new Intent();
setResult(RESULT_OK, intent);
finish();
在Activity2中,添加以下内容以启动Activity1和完成Activity2
Intent myIntent = new Intent(view.getContext(), Activity2.class);
startActivityForResult(myIntent, 0);
Intent intent = new Intent();
setResult(RESULT_OK, intent);
finish();
有关更多详细信息:- 如果使用startActivityForResult启动活动,则可以使用从父级关闭活动
要启动活动:
startActivityForResult(新意图(…),123123/*requestCode*/)代码> 当您想(从调用者)完成该活动时,请使用:
finishActivity(123123/*requestCode*/)
- 还有一种方法可以找到子活动是否完成。但是,只有当子活动为self调用finish()时,才能跟踪这一点。要从子级接收子级完成请求,需要重写父级活动中的方法