gpt4 book ai didi

Android 多线程与 TextWatcher

转载 作者:行者123 更新时间:2023-11-29 17:50:54 25 4
gpt4 key购买 nike

我是 Android 开发的新手,目前正在开发一款应用程序,该应用程序允许人们在框中键入文本,文本会显示在屏幕上的位图上。

我在监听变化的 Activity 中有一个文本框。每次键入文本时,它都会调用函数来确定如何最好地格式化图像上的文本,然后用新文本更新图像。它只适用于少量文本,但当文本过多时,计算速度会变慢,设备开始死机,几乎无法输入。

有没有一种方法可以在后台运行计算,以便在框中键入内容不受图像更新的影响?我认为使用多线程会很有用,但对线程的了解还不够多,无法使其发挥作用。

这是我的代码:

public class PicTextWatcher implements TextWatcher {
...
public void afterTextChanged(Editable editable) {
pic.setText(editable.toString()); //This function is relatively slow
pic.writeText(); //This function is very slow
imageView.setImageBitmap(pic.getImage()); //This doesn't need to happen every keystroke, only when the other functions have completely finished
}
}

提前致谢,格林斯特先生

最佳答案

您可以使用AsyncTask 在后台执行操作

public void afterTextChanged(final Editable editable) {
new AsyncTask<Void, Void, Void>() {
protected Void doInBackground(Void... params) {
pic.setText(editable.toString());
pic.writeText();
return null;
}
protected void onPostExecute(Void result) {
imageView.setImageBitmap(pic.getImage());
}
}.execute();
}

你必须记住,如果用户输入快而写文本慢,现在 pic.setText(editable.toString());pic.writeText(); 可能会同时调用多次。

关于Android 多线程与 TextWatcher,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22929113/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com