如何使用Robotium/Android SDK找出堆栈顶部的Activity?

Pau*_*ros 10 android robotium android-sdk-tools android-activity

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

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

Irc*_*ver 1

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

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());
Run Code Online (Sandbox Code Playgroud)