我正在学习Android UI线程和后台线程如何处理数据以及如何将后台线程与UI线程通信,反之亦然
例如,使用后台线程,我将使一个字符串的长度大于正常字符串。
StringBuilder builder = new StringBuilder();
@Override
protected String doInBackground(Void... voids) {
for(int i = 0; i <= 9999; i++){
builder.append(String.valueOf(i));
}
return builder.toString();
}
@Override
protected void onPostExecute(String str) {
super.onPostExecute(str);
tvdisplay.setText(str);
}
现在,当字符串设置为TextView然后UI冻结了一段时间我如何在没有UI冻结的情况下将字符串设置为TextView?或者什么是在不挂起的情况下将大型字符串或数据加载到UI中的有效方法?
答案 0 :(得分:0)
您只需将文本视图保留在ScrollView中即可。
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:orientation="vertical"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<ProgressBar
android:id="@+id/pbLoading"
android:visibility="invisible"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/tvdisplay"/>
</LinearLayout>
</ScrollView>