2016-07-04 4 views
1

によって要求された変数に格納される前に実行するから非同期タスクを保持どのように利用者からキーワードを取得するためのコードですAsync Taskを実装し、Web検索のためのキーワードとしてキーワードを必要とするクラスです。は、私は、ユーザーの入力は、次の非同期タスク

アプリケーションがクラッシュしたのは、UIと非同期スレッドが同時に実行され、非同期タスクがアプリケーションクラッシュの原因となった入力を持たないためです。

キーワードがフェッチされて変数に格納されるまで、非同期タスクの実行を保持するにはどうすればよいですか?

答えて

2

コール非同期クラスとしてexecuteメソッド内のキーワードを渡すことができます。

ここ
2

サブクラスAsyncTaskは、パラメータを持つコンストラクタを持つことができます。入力を取得し、それを使用してAsyncTaskを実行します。

2

はこれを試してください: -

if(keyword!=null){ 
//call your async task Class here 
//ex:- new Hello.execute(); - Hello is your AsyncTask class 
} 

また、ボタンのクリックでnew Hello.execute(keyword);

0
EditText nameTextBox = (EditText) view.findViewById(R.id.keyword); 

    nameTextBox.addTextChangedListener(new TextWatcher(){ 
     public void afterTextChanged(Editable s) { 
      // call aynctask here after check 's' length like "s.toString().length() > 0" 
     } 
     public void beforeTextChanged(CharSequence s, int start, int count, int after){} 
     public void onTextChanged(CharSequence s, int start, int before, int count){} 
    }); 

のEditText値の変更は、あなたがテキストをリスナーメソッドを変更した後、あなたはあなたのasynctaskでその値を送信時に値を取得します。

関連する問題