有什么方法可以知道活动何时完成?

问题描述:

我写了一个脚本来模拟用户操作。例如,工作流程首先点击一个图标,启动一项活动。然后执行其他操作。 问题是,我不知道活动完全启动的确切时间。目前,我使用sleep来使我的脚本等待。 有什么方法可以知道活动何时完成?有什么方法可以知道活动何时完成?

+1

这取决于您是否拥有控制权?所以你可以在其中编写代码?你从哪里运行脚本? – 2011-12-14 13:44:21

是您的最终任务是活动启动后运行的东西......做到这一点从活动称为

第一种方法是onCreate(),因此,我们可以说,在完成onCreate()系统调用onStart()它调用onResume()方法...作为onResume()完成,你可以说你的活动是正确的推出...

如果你不打算覆盖onStart()onResume()我所要描述可以写成的onCreate()最后陈述。当我不需要onStart()onResume()时,我通常会这样做。

您可以创建一个对象Handler。像

Handler handler = new Handler();

处理程序有一个方法postDelayed()这就是所谓的创建经过一些时间和启动完成。

这样称呼它

handler.postDelayed(runnable,timeInMilliSeconds);

毕竟该过程后,应用程序将等待timeInMilliSeconds毫秒开始在postDelayed提供runnablerun方法定义的过程.....

因此,

如果您的任务是要知道何时启动完成答案是:在结束时从你的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. 
    } 
});