Chr*_*ian 2 android android-ui
view.setText("hello");
wait(1000);
view.setText("world");
Run Code Online (Sandbox Code Playgroud)
当我调用上面的函数时,视图根本不显示"hello".文本仅在完成功能完成时更新.我有什么需要打电话来看"你好"?
问题是您正在更新阻止UI线程的UI,然后再次更新它.你不应该睡觉UI线程,这是不好的做法,用户不会喜欢它.
线程可以解决问题,但你真的不需要一个线程来处理你在这里做的事情(同样,你不应该从后台线程更新UI,你需要使用处理程序来发送消息).
您应该使用处理程序来执行此类简单更新,因为它不会在应用程序中使用其他线程.您可以在其上使用postDelayed方法让它在特定时间内回调到您的UI线程.
这篇文章http://developer.android.com/resources/articles/timed-ui-updates.html涵盖了实现定时UI更新的过程,非常简单.
要转换您的示例:
//member variable
private Handler mHandler = new Handler();
//In your current Method
view.setText("hello");
mHandler.postDelayed(mUpdateTimeTask, 1000);
//Member variable
private Runnable mUpdateTimeTask = new Runnable() {
public void run() {
view.setText("world");
}
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
461 次 |
| 最近记录: |