我正在开发一个应用程序,用于将某些图形用户界面事件与音轨同步。现在你需要在onCreate退出后按下一个按钮来设置所有动作。我试图添加功能,以便在布置所有内容后10秒内开始音频/图形交互。活动启动时自动启动执行
我首先想到的是,在的onCreate结束,使使用的解决方案here 10000毫秒UI线程睡眠,然后调用button.onClick()。但是,对我来说,这似乎是一个非常糟糕的做法,而且无论如何都没有尝试过。有没有一种很好的方法来实现这个自动启动功能?
我正在开发一个应用程序,用于将某些图形用户界面事件与音轨同步。现在你需要在onCreate退出后按下一个按钮来设置所有动作。我试图添加功能,以便在布置所有内容后10秒内开始音频/图形交互。活动启动时自动启动执行
我首先想到的是,在的onCreate结束,使使用的解决方案here 10000毫秒UI线程睡眠,然后调用button.onClick()。但是,对我来说,这似乎是一个非常糟糕的做法,而且无论如何都没有尝试过。有没有一种很好的方法来实现这个自动启动功能?
永远不要在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
}
Handler handler=new Handler();
Runnable notification = new Runnable()
{
@Override
public void run()
{
//post your code............
}
};
handler.postDelayed(notification,10000);
是,把UI线程睡眠心不是一个好主意。
尝试做的这个
private final ScheduledExecutorService worker = Executors.newSingleThreadScheduledExecutor();
worker.schedule(task, 10, TimeUnit.SECONDS);
不是Android的方式,我会说。浪费资源没有很好的理由。 – 2013-05-02 10:12:25