2013-05-02 83 views
0

我正在开发一个应用程序,用于将某些图形用户界面事件与音轨同步。现在你需要在onCreate退出后按下一个按钮来设置所有动作。我试图添加功能,以便在布置所有内容后10秒内开始音频/图形交互。活动启动时自动启动执行

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

回答

1

永远不要在UI线程上放置睡眠/延迟。相反,使用HandlerpostDelayed方法得到它里面的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 
} 
0
Handler handler=new Handler(); 
Runnable notification = new Runnable() 
{ 
    @Override 
     public void run() 
     { 
        //post your code............ 
       } 
      }; 
      handler.postDelayed(notification,10000); 
0

是,把UI线程睡眠心不是一个好主意。

尝试做的这个

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

不是Android的方式,我会说。浪费资源没有很好的理由。 – 2013-05-02 10:12:25