我正在開發一個應用程序,用於將某些圖形用戶界面事件與音軌同步。現在你需要在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