想实现的功能是:启动一个线程异步去网络取回一个String,将这个String作为另一个函数运行的参数使用,不需要去更新UI.问:异步操作时,只能把获取的String用来去更新UI吗?能不能将String赋值给一个全局变量,用以其他函数使用。

解决方案 »

  1.   

    java里没有像C里的全局变量,在java里一个类的public static 的变量相当于全局变量,类名.变量名 就可以读写这个变量了
      

  2.   

    public class MainActivity extends Activity {
    private Button button;
    private static String strQj; @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main); button = (Button) findViewById(R.id.button);
    button.setOnClickListener(new OnClickListener() { @Override
    public void onClick(View arg0) {
    // TODO Auto-generated method stub
    MyYiBu myYiBu = new MyYiBu();
    myYiBu.execute();
    System.out.println("reslut:"+strQj);
    }
    });
    } class MyYiBu extends AsyncTask<String, Integer, String> { @Override
    protected String doInBackground(String... params) {
    // TODO Auto-generated method stub
    strQj="abc";
    return null;
    } }
      

  3.   

    输出结果第一次为空,后面就有值了,如何在第一次就可以取到值 呀?
    06-26 22:18:31.440: I/System.out(2705): reslut:null
    06-26 22:18:31.930: I/System.out(2705): reslut:abc