2

私は Android アプリケーションを開発していますが、起動すると次のようになります。

1)サーバーに HTTP リクエストを送信して、小さな JSON ファイルを送信します。

2) webView を開いて URL を表示します。

サーバーが正常に稼働している場合、まったく問題はなく、すべてがスムーズに進みます。

ただし、何らかの理由でサーバーがダウンしている場合、HTTP 要求は文字通りハングし、URL の読み込みで webView が実際に表示されるまで約 30 秒の HTTP タイムアウトが発生するまで待つ必要があります。

UIスレッド内でネットワークを作成するべきではなく、そのために別のスレッドを使用する必要があることを読みました。

BlackBerry では、私はすでにアプリケーションを開発していますが、これはそれと同じくらい簡単です:

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

新しいスレッドを開始するだけで、内部でリクエストと必要なすべてのネットワークを作成します。そうすれば、サーバーに到達できない場合でも、ユーザーを待たせたり、アプリが実際にハングしていることを感じたりすることなく、webView がすぐに読み込まれます。

Android でまったく同じことを行うにはどうすればよいですか?

4

3 に答える 3

7

BlackBerry で使用するのと同じ方法を使用してみませんか?

new Thread() {
  public void run() {
    new URL("http://www.stackoverflow.com").getContent();
  }
}.start();
于 2013-04-25T11:11:37.980 に答える
5

AsyncTask を使用します。これが最も簡単な方法です。詳細: http://developer.android.com/reference/android/os/AsyncTask.html

于 2013-04-25T11:06:20.193 に答える