我不能把我在asynctask中的价值放在android上

时间:2014-04-16 18:39:35

标签: java android string android-asynctask

String[] a = new String[2];
String[] b = new String[2];

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_second);
    new AsyncTaskClass().execute();
    // in here when i use a it gets me a but i write a = b in method().
}

class AsyncTaskClass extends AsyncTask<String, String, String> {

    @Override
    protected void onPreExecute() {
    }
    @Override
    protected String doInBackground(String... strings) {
        method();
        return null;
    }

    @Override
    protected void onPostExecute(String s) {
    }
}

void method() {
    a = b;
}

方法()工作我在其中放了一个toast messg,我看到了mssg,但它不起作用(a = b) 顺便说一下a和b的定义。我们称之为a = {“a”,“b”}; B = { “C”, “d”};当我使用[0]代码得到我“a”。为什么?这就是问题

1 个答案:

答案 0 :(得分:2)

doInBackground正在后台线程中执行,所以一旦你调用.execute(),执行就会通过你的:

 //in here when i use a it gets me a but i write  a = b in method().

行,你的doInBackground肯定还没有执行(但它可能),如果它依赖于doInBackground结果,你应该将所有处理移动到onPostExecute。