在活动启动时自动开始执行

时间:2013-05-02 10:03:51

标签: android delay autostart

我正在开发一款可以将某些图形UI事件与音轨同步的应用。现在,您需要在onCreate退出后按一个按钮将所有内容设置为动态。我正在尝试添加功能,以便在所有内容布局后10秒内启动音频/图形交互。

我的第一个想法是,在onCreate结束时,使用解决方案here使UI线程休眠10000毫秒,然后调用button.onClick()。这对我来说似乎是非常糟糕的做法,但无论如何都没有尝试过。有没有一种很好的方法来实现这个自动启动功能?

3 个答案:

答案 0 :(得分:1)

永远不要把睡眠/延迟放在UI线程上。相反,使用Handler及其 postDelayed 方法在 onCreate onStart onResume 内完成您的活动。例如:

@Override
protected void onResume() {
    super.onResume();

    new Handler().postDelayed(new Runnable() {
        @Override
        public void run() {
            //do whatever you want here
        }
    }, 10000L); //the runnable is executed on UI-thread after 10 seconds of delay
}

答案 1 :(得分:0)

Handler handler=new Handler();
Runnable notification = new Runnable()
 {
     @Override
        public void run() 
        {
                   //post your code............
              }
            };
            handler.postDelayed(notification,10000);

答案 2 :(得分:0)

是的,将UI线程置于睡眠状态并不是一个好主意。

试试这个

private final ScheduledExecutorService worker = Executors.newSingleThreadScheduledExecutor();
worker.schedule(task, 10, TimeUnit.SECONDS);