【发布时间】:2016-10-23 12:15:46
【问题描述】:
在 android 应用程序中,当我们执行网络操作时,我们主要使用线程,而不是主 UI 线程。我见过同时使用多个线程的核心 Java 应用程序。那么在Android中使用多个线程而不是网络操作是一个好习惯吗?我觉得如果我使用多个线程并且它们直接影响我的应用程序流的原因之一,那么它可能会导致数据不匹配,因为其中一个线程可能在 Ui 更新或用户遍历到下一个活动时尚未执行。所以所有的数据操作都应该同步发生。所以基本上像纯java应用程序一样在android中使用多线程是一个好习惯吗?还有为什么这种情况不会出现在 java 应用程序中?是因为与适当的机器相比,移动设备处理多个进程的能力较低吗?谢谢。
【问题讨论】:
-
是的。这很正常。使用它们
-
@Vyacheslav 所以让我们说我正在研究一种方法,其中大量数据正在 arraylist 中更新,它会影响 UI,我必须在单独的线程中使用它吗?如果用户执行一些其他操作或遍历到下一个活动怎么办?
-
@Pritish,除了主线程之外,您无法从其他线程更改 UI。如果您尝试实现的内容不会更改 UI,您可以使用将在后台运行并在完成时通知主线程的 AsynchTask。但是,在您的示例中,您想要更新 UI,因此我要么在主线程下编写代码,要么使用 activity.runOnUiThread - 这是一个可以帮助您实现请求的处理程序实例。
-
每个网络线程都不能在 ui 线程内工作。否则,它会处理错误
-
“为什么在 java 应用程序中不会出现这种情况?” 很抱歉不同意。它们确实发生了。很多。
标签: java android multithreading