2012-09-03 15 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