android - 在不使用 AsyncTask 的情况下在 Android 中执行网络操作

标签 android multithreading http user-interface

我的问题很简单,我正在寻找有关 Android 中多线程和网络的有用教程的建议或链接。我看过的每个示例都使用 AsyncTask。我想知道的是,您能否仅通过线程和处理程序获取和使用数据?

我知道 HTTP 请求必须在一个新线程上完成,否则你会得到 NetworkOnMainThreadException 但我想使用线程和处理程序的原因是因为我希望 UI 使用来自另一个线程的所述数据进行更新。

我真的不是在追求代码,只是指向正确的方向。

最佳答案

What I want to know is can you get and use data just with threads and handlers?

是的。网络操作只需在后台 Thread 上完成,无论是使用 AsyncTaskdoInBackground() 还是创建新的 Thread 。看Painless ThreadingProcesses and Threads

i want the UI to be updated with said data from the other thread.

无论你使用什么,你仍然需要更新主线程上的UI。这可以通过 AsyncTask 使用除 doInBackground() 之外的任何其他方法轻松完成(onPreExecute()onProgressUpdate() onPostExecute() 都在主 Thread 上运行。

AsyncTask Docs

关于android - 在不使用 AsyncTask 的情况下在 Android 中执行网络操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21143381/

相关文章:

android - 如何在android中获取动态生成的图像名称

c# - 如何发出 HTTP PUT 请求?

python - 发送 HTTP 请求 python

Java超时一组指令

android - 是否可以在 Service 类中使用 AsyncTask?

json - 改变子资源状态的 REST 方法

android - 如何在android中解析没有json对象标题的json数组?

android - 错误 :Execution failed for task ':app:mergeDebugResources' . > java.lang.ArrayIndexOutOfBoundsException(无错误消息)

android - 不小心删除了Android Sdk,我找不到如何再次下载它(Linux)

c# - 多个应用程序对同一文件的访问