我有 RealViewSwitcher 控件,我正在使用一些代码在 OnScreenSwitchListener 中更新我的 UI,如下所示
public void onScreenSwitched(int screen) {
//1 update some text view for example
//2 heavy process
}
在繁重的过程完成之前,我的 UI 更新不会出现,我怎样才能立即更新我的文本视图?
我有 RealViewSwitcher 控件,我正在使用一些代码在 OnScreenSwitchListener 中更新我的 UI,如下所示
public void onScreenSwitched(int screen) {
//1 update some text view for example
//2 heavy process
}
在繁重的过程完成之前,我的 UI 更新不会出现,我怎样才能立即更新我的文本视图?
如何即时更新我的文本视图?
你不能,就其本身而言。
但是,最有可能的是,您的“繁重进程”应该在后台线程中完成,例如AsyncTask
. 这将使您的 UI 更新得到更快的处理。
如果您的“繁重过程”本身就是 UI 更新,则您需要安排将“繁重过程”推迟到当前方法返回并且 Android 可以处理您的第一组 UI 更新之后的某个时间。执行此操作的一种方法是将“繁重的过程”工作放入Runnable
您计划执行的 a 中,使用post()
onHandler
或 any上可用的方法View
。
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<> goto 的更多参考
http://developer.android.com/reference/android/os/AsyncTask.html