在Android中使用另一个"网络"线程

don*_*ias 2 multithreading android background-process

我正在开发一个Android应用程序,当它启动时:

1)我向我的服务器发出HTTP请求以发送一个小的JSON文件.

2)打开webView以显示URL.

当服务器正常运行时,绝对没有问题,一切顺利.

但是,如果由于任何原因服务器关闭,HTTP请求字面上会挂起,我需要等到有一个HTTP timeOut,大约30秒,直到我实际看到带有URL加载的webView.

我读到我不应该在UI线程内部建立任何网络,我应该使用另一个线程.

在BlackBerry,我已经开发了应用程序,这很简单:

new Thread(){
  public void run(){
    HttpConnection hc = 
            (HttpConnection)Connector.open("http://www.stackoverflow.com");
  }
}.start();
Run Code Online (Sandbox Code Playgroud)

我只是开始一个新的线程,在里面我发出请求和所有必要的网络.这样,即使我的服务器无法访问,也会立即加载webView,而不会让用户等待并感觉到应用程序实际上已挂起.

我怎样才能在Android中以最简单的方式做到这一点?

Mat*_*Dev 6

为什么不使用与BlackBerry相同的方法?

new Thread() {
  public void run() {
    new URL("http://www.stackoverflow.com").getContent();
  }
}.start();
Run Code Online (Sandbox Code Playgroud)


cy3*_*3er 5

使用AsyncTask,这是最简单的方法.有关更多详细信息,请访问:http: //developer.android.com/reference/android/os/AsyncTask.html