2017-03-01 4 views
0

aの値を取得してbに設定するにはどうしたらよいですか?
public class MainActivity extends AppCompatActivity { int a、b;行のasynctaskの結果からMainActivityで使用する値を取得する方法

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    Task task=new Task(); 
    task.execute(5,6); 
    b=a; 
} 

public class Task extends AsyncTask<Integer,Void,Integer>{ 

    @Override 
    protected void onPostExecute(Integer integer) { 
     super.onPostExecute(integer); 
     a=integer; 

    } 

    @Override 
    protected Integer doInBackground(Integer... integers) { 
     return integers[0]+integers[1]; 
    } 
} 
} 

答えて

1

b=a;、実行時に他のスレッド

最良の結果は方法でonPostExecute書き込みB =で実行されています。

これより前にbを設定する

0

あなたの質問にはすでに回答があります。 このステートメントを実行した後。 task.execute最初doInBackgroundを実行した後

Task task=new Task(); 
task.execute(5,6); 

が呼び出され、それがその後、onPostExecuteにに割り当て、Bとあなたのアールの合計を返します。 b=aonPostExecuteに書き込んでみてください。

+0

あなたの答えに感謝しますが、この場合、私はMainActivityでbを使用する必要があります。 –

+0

あなたはあなたのシナリオを説明できますか?明らかにAsynaskはAsynTaskを使用していますが、それでもあなたはoncreateで新しいスレッドを作成して実行に時間を割きたいのですが、あなたの解決方法をカバーしません。 –

+0

私はSharedPreferenceに "a"を保存してMainActiviityに戻り、 "b"に割り当てて私の問題を解決しました。私は結果を得ています。あなたの助けに感謝します! –

関連する問題