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”。为什么?这就是问题
答案 0 :(得分:2)
doInBackground正在后台线程中执行,所以一旦你调用.execute(),执行就会通过你的:
//in here when i use a it gets me a but i write a = b in method().
行,你的doInBackground肯定还没有执行(但它可能),如果它依赖于doInBackground结果,你应该将所有处理移动到onPostExecute。