2013-05-02 88 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