有什么方法可以知道活动何时完成?
我写了一个脚本来模拟用户操作。例如,工作流程首先点击一个图标,启动一项活动。然后执行其他操作。 问题是,我不知道活动完全启动的确切时间。目前,我使用sleep
来使我的脚本等待。 有什么方法可以知道活动何时完成?有什么方法可以知道活动何时完成?
是您的最终任务是活动启动后运行的东西......做到这一点从活动称为
第一种方法是onCreate()
,因此,我们可以说,在完成onCreate()
系统调用onStart()
它调用onResume()
方法...作为onResume()
完成,你可以说你的活动是正确的推出...
如果你不打算覆盖onStart()
或onResume()
我所要描述可以写成的onCreate()
最后陈述。当我不需要onStart()
或onResume()
时,我通常会这样做。
您可以创建一个对象Handler
。像
Handler handler = new Handler();
处理程序有一个方法postDelayed()
这就是所谓的创建经过一些时间和启动完成。
这样称呼它
handler.postDelayed(runnable,timeInMilliSeconds);
毕竟该过程后,应用程序将等待timeInMilliSeconds
毫秒开始在postDelayed
提供runnable
run
方法定义的过程.....
因此,
如果您的任务是要知道何时启动完成答案是:在结束时从你的onStart()
调用....
如果你想执行一些行动使用handler.PostDelayed()
方法并保持timeInMilliSeconds
非常低... [1至10]之间。
我不知道活动开始时你想要做什么。但通常每个人的要求是找到视图的宽度或与UI有关的事情。事情是,在绘制UI之前调用onCreate,因此在这里可以完成与涉及测量的UI相关的任何内容。为此,我们可以使用全局布局侦听器。
ViewTreeObserver vto = outerLayout.getViewTreeObserver();
vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
outerLayout.getViewTreeObserver().removeGlobalOnLayoutListener(this);
//This is executed once the layout is drawn. AFAIK this is as close as it gets
to when the activity is started.
}
});
这取决于您是否拥有控制权?所以你可以在其中编写代码?你从哪里运行脚本? – 2011-12-14 13:44:21