如何从asActask的结果中获取值以在MainActivity中使用

时间:2017-03-01 09:27:30

标签: android-asynctask

我想获得a的值并设置为b,我该怎么做?     公共类MainActivity扩展AppCompatActivity {     int a,b;

@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];
   }
}
}

2 个答案:

答案 0 :(得分:1)

b=a;

按时运行其他线程

最佳结果是方法onPostExecute写b = a;

所以b之前是b

答案 1 :(得分:0)

在你的问题中,你已经有了答案。 执行此声明后。

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

执行task.execute后,将调用第一个doInBackground,然后它将返回onPostExecute,然后将a和b的总和分配给a。 只需在b=a中写下onPostExecute即可,它会按您的意愿运作。