2012-09-03 46 views
0

我寫這個代碼命令序列?

WindowManager.LayoutParams params = getWindow().getAttributes(); 
    params.flags |= LayoutParams.FLAG_KEEP_SCREEN_ON; 
    params.screenBrightness = 0.1F; 
    getWindow().setAttributes(params); 

    SystemClock.sleep(5000); 

    TextView Text01 = (TextView) findViewById(R.id.Text1); 
    Text01.setText("Hello"); 

設置屏幕亮度,然後,在5秒鐘後,它會顯示文字。問題在於它等待5秒鐘,然後Android將屏幕變暗並同時輸出文本。爲什麼它不能順序工作? 感謝

+0

什麼語言/平臺/操作系統? –

+0

這是適用於Android的Java應用 - 適用於手機 – notebook

+0

確定 - 問題現在已被正確標記 - 請在將來小心處理。 –

回答

0

我的猜測是,代碼在UI線程,這意味着沒有被吸引到用戶界面,直到你的函數退出運行。您可能想要設置某種回調來觸發未來文本的更改。也許是一個AsyncTask,睡覺發生在後臺線程和UI更改代碼發生在onPostExecute

+0

謝謝,我認爲這也是UI問題。我已經閱讀了http://stackoverflow.com/questions/10368919/why-imageview-cant-update-before-systemclock-sleep腳本,它具有相同的問題,所以我嘗試了,它的工作原理。然而,我不能延長任何命令之間的任意等待時間,比如5-6個需要在不同的延時時間改變屏幕顏色/亮度的命令。你有什麼想法去解決這個問題嗎? – notebook

+0

使用[Handler](http://developer.android.com/reference/android/os/Handler.html)。他們有允許任意延遲的方法,比如'sendEmptyMessageDelayed'。 – noisecapella

+0

但是我可以有多個Handler嗎?因爲在每個命令之後我需要一個。另外問題是UI不允許更新,直到最後的命令,所以任何技術來克服這一點? – notebook