2011-07-16 10 views
0

私はログインフォームを作成しています。ユーザーがログインすると、ホームページにつながります。AsyncTaskを作成する際のエラー

私はAsyncTaskを持つアクティビティを作成します。ここに私のコードの関連部分があります:

public class iniTask extends AsyncTask<String, Void, String> { 
    private ProgressDialog Dialog = new ProgressDialog(GPSTracerActivity.this); 

    protected void onPreExecute() { 
     Dialog.setMessage("Connect to server..."); 
     Dialog.show(); 
    } 

    protected String doInBackground(String... url_req) { 
     String url = url_req[0]; 
     try { 
      Log.v("doing background", executeHttpGet(url)); 
      return executeHttpGet(url); 
     } catch(Exception e) { 
      Log.v("Exception doing background","Exception:"+e.getMessage()); 
      return ""; 
     } 
    } 

    protected void onPostExecute(String result) { 
     try { 
          Dialog.dismiss(); 
         // here when thing go wrong 
       startNewAction(result);  


     } catch(Exception e) { 
      Log.v("Exception process response","Exception:"+e.getMessage()); 
     } 
    } 
} 

ここstartNewAction(result)です:

public void startNewAction(String result){ 
    if (result.substring(0, 6) == "300 OK"){ 
     Intent i = new Intent(GPSTracerActivity.this, Home.class); 
     startActivity(i); 
    } 
} 

タスクが正常に起動しますが、私はstartNewAction(result)、 を呼び出すときには、新しいアクティビティを呼び出すことはありません。どうして?

注:構造体をテストする場合に構造体を有効にすると== 300 OKですが、機能しません!なぜ

私はlogcatでこれを参照してください。あなたのonPostExecuteで

07-16 14:57:23.345: WARN/InputManagerService(37): Window already focused, ignoring focus gain of: [email protected] 
+0

正しい結果が返ってきたことを確認しましたか? (つまり「300 OK」)また、あなたのonPostExecuteメソッドが別のメソッドを呼び出す以外に何もしない理由は少しありません。あなたのロジックをそこに置くのはなぜですか?特に3行だけです。 – Kenny

+0

Thx私はすでに行っていましたが、何も実行しません上記のようにlog catを表示するインテントアクティビティを呼び出さなかった、それはメソッドからの呼び出しによって別の方法で試してみます。 問題は、別のインテント、任意のアイデアを表示する場合、私は使用しない場合構造体を入れようとすると表示されますか? – sayvortana

+0

問題が何であるかはっきりしていませんが、投稿したエラーは、ビューと入力メソッド(ソフトキーボードなど)のやりとりのためのフレームワーククラスからのものです。開いているアクティビティでキーボード入力を使用していますか? – Kenny

答えて

0

は、最初のダイアログを閉じます。

Dialog.dismiss(); 
+0

ああ私のコードで申し訳ありません私はすでにダイアログを却下するだけで上記の質問に入れなかった – sayvortana

0

私はちょうど

、解決策は、エラーが原因で、私は、文字列を比較する方法であり見つかったことは、とにかく、アイデアをありがとう

 if (result.substring(0, 6).equals("300 OK")){ 
       Intent i = new Intent(GPSTracerActivity.this, Home.class); 
       startActivity(i);    
     } 

する必要があります!

関連する問題