在完成特定方法之前,如何强制我的视图更新其状态?

时间:2013-02-09 19:35:31

标签: android

我有RealViewSwitcher控件,我正在使用一些代码在OnScreenSwitchListener中更新我的UI,如下所示

public void onScreenSwitched(int screen) {
//1 update some text view for example 

//2 heavy process 

}

直到繁重的流程完成后才会显示我的用户界面的更新,如何立即更新我的文本视图?

2 个答案:

答案 0 :(得分:1)

  

如何即时更新我的​​文字观点?

你本身不能。

但是,最有可能的是,您的“繁重过程”应该是后台线程,例如AsyncTask。这样可以更快地处理UI更新。

如果您的“繁重流程”本身是UI更新,则需要安排延迟“繁重流程”,直到您当前方法返回并且Android可以处理您的第一组UI更新之后的某个时间。这样做的一种方法是使用Runnable或任何post()上提供的Handler方法将“繁重流程”工作放在您计划执行的View中。< / p>

答案 1 :(得分:1)

private class YouClass extends AsyncTask<Type1, Type2, Type3> {
 protected Long doInBackground(Type1... obj1) {
     //operations to do in background
 }

 protected void onProgressUpdate(Type2... obj2) {
     //operations during the process progress
 }

 protected void onPostExecute(Type3 obj3) {
     //the operations after the completion of your task
 }
}

有关AsyncTask&lt;&gt;的更多参考信息转到

http://developer.android.com/reference/android/os/AsyncTask.html