如何使用Robotium / Android SDK找出哪些活动位于堆栈顶部?

时间:2015-05-15 03:54:34

标签: android android-activity robotium android-sdk-tools

我为Android应用程序进行了Robotium测试,该测试扩展了ActivityInstrumentationTestCase2。测试在循环上运行,随机单击活动视图。我想在每次迭代开始时验证哪个Activity当前是关注的。这种行为对我很重要,因为其中一个按钮能够启动另一个Activity,在循环中进行进一步的操作是不可能的,因为它们引用了测试中的Activity(这是我停止Robotium测试的时候)。

我想要一个适用于任何Activity的通用解决方案,而无需更改onDestroy()方法。当按下主页按钮时,此解决方案也必须有效。

3 个答案:

答案 0 :(得分:2)

你应该可以使用

solo.getCurrentActivity()

为此目的,这不适合你吗?如果没有生病,可以先解决潜在的问题,并在构建独立对象时使用您的代码以及您正在使用的roborium版本。

答案 1 :(得分:1)

我们发现,this链接包含此问题的答案。

ActivityManager am = (ActivityManager) this .getSystemService(ACTIVITY_SERVICE);
List<RunningTaskInfo> taskInfo = am.getRunningTasks(1);
ComponentName componentInfo = taskInfo.get(0).topActivity;
Log.d(WebServiceHelper.TAG, "CURRENT Activity ::" + taskInfo.get(0).topActivity.getClassName()+"   Package Name :  "+componentInfo.getPackageName());

答案 2 :(得分:0)

这个适用于我,最低SDK级别为18

s