我正在开发一款可以将某些图形UI事件与音轨同步的应用。现在,您需要在onCreate退出后按一个按钮将所有内容设置为动态。我正在尝试添加功能,以便在所有内容布局后10秒内启动音频/图形交互。
我的第一个想法是,在onCreate结束时,使用解决方案here使UI线程休眠10000毫秒,然后调用button.onClick()。这对我来说似乎是非常糟糕的做法,但无论如何都没有尝试过。有没有一种很好的方法来实现这个自动启动功能?
答案 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);