因为一些奇怪的原因,当我使用 AsyncTask 连接到网页时,我的应用程序的 UI 在 AsyncTask 连接到网页时几乎滞后到冻结点。
我认为这是因为连接通常需要很长时间,至少 4 秒。
我希望能够在我的线程完成后更新我的 TextView,但是除了使用 AsyncTask 之外,我如何在 Android 中做到这一点?
因为一些奇怪的原因,当我使用 AsyncTask 连接到网页时,我的应用程序的 UI 在 AsyncTask 连接到网页时几乎滞后到冻结点。
我认为这是因为连接通常需要很长时间,至少 4 秒。
我希望能够在我的线程完成后更新我的 TextView,但是除了使用 AsyncTask 之外,我如何在 Android 中做到这一点?
有几种方法可以做到这一点:
例如,您可以创建一个新的 Handler(),当您想在主线程中运行代码时,请执行以下操作:
public static Handler interfaceHandler = new Handler();
...
mInterfaceHandler.post(new Runnable() {
@Override
public void run() {
//Your stuff
}
});
补全信息,Android中的所有View都可以发这个post(Runnable)。这种方法为他们的任务添加了一个runnable,因此建议不要使用视图,因为应用程序会变慢。静态处理程序非常适合完成这项工作,并且非常容易实现
像这样的东西应该工作
runOnUiThread(new Runnable() {
public void run() {
// do some stuff here
}
});