如果启动new Activity,ViewClient是否无效?

Is ViewClient invalid if new Activity is started?

我有一个正在测试 activity 的 AndroidViewClient 脚本。单击我的 android 应用程序中的按钮会创建一个新的 Activity 实例。似乎我的 python 脚本中的 ViewClient 实例需要在新的 activity 启动后重新创建 - 是吗?像这样:

# My main activity is started here.
vc = ViewClient(device, serialno)
myBtn = vc.findViewById("btnStartNewActivity")
myBtn.touch() # this starts a new activity.
time.sleep(5)

# It seems like ViewClient is still pointing at 
# the previous activity. 
vc.traverse()

# I can do this to get it to see the new Activity:
vc = ViewClient(device, serialno)
vc.traverse() # now it's ok.

这是正确的做法吗?

谢谢

不,不需要创建新的实例,每次屏幕变化时(无论是新的 Activity 还是同一个)你所要做的就是调用

vc.dump()

并读取新的视图层次结构(参见 ViewClient#dump())。

重新创建实例,在你的情况下,因为你没有设置 autodump 参数并且它的默认值是 true 自动调用 dump(),但只调用 dump()效率更高。