我必须更新 TextView
来自另一个类(不是 Activity )的方法的结果可能会很慢地完成其搜索。虽然该方法没有完成,但我认为设置 TextView
将文本设置为“正在加载...”之类的内容,最后,在方法结果正常后,将文本设置为该结果。目前我正在做这样的事情:
textView.setText("loading...");
Search s = searcher.search();
textView.setText(s.result);
首先,这仍然会卡住应用程序,直到结果正常,一旦没有使用新的 Threads
。我知道要将内容设置为 Android 小部件,我们必须在 uiThread
中执行此操作。 ,但一旦我不在 Activity
内,我不知道该怎么做。 。
其次,该方法没有显示“正在加载...”文本。当我调用该代码时,应用程序只是卡住并返回最终文本。
那么,如何避免卡住/破坏,直到内容正常为止?
最佳答案
不要在 Android 的 MainThread (UI) 内进行繁重的操作。对于您的情况,请查看AsyncTask 。它给你一个方法doInBackground
,你应该在其中创建一些后台内容(http请求,文件i/o),然后你将调用onPostExecute
,该方法将在UI线程上调用与 doInBackground
方法的结果。 Another example .
关于java - 设置 TextView 文本时应用程序卡住,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53978503/