【问题标题】:Android: Trying to use AsyncTask to talk to web serverAndroid:尝试使用 AsyncTask 与 Web 服务器对话
【发布时间】:2012-11-27 06:48:00
【问题描述】:

我正在尝试使用AsyncTaskdoInBackground 方法向网络服务器发送消息。然后使用AsyncTaskonPreExecute()onPostExecute(String result) 方法将文本控件从发送数据更改为Fineshed。

问题是在 AsyncTask String 类内部,我无法访问在外部类中声明的任何变量。因此,我无法在这些方法中更改我的 TextView。我明白了,所以mSEnd.setText("Sending data")给了我mSend undefined。

有没有办法使用我在外部类中声明的变量?

public class EndOfWorldActivity  extends cBase  implements OnClickListener {

     TextView textCountDown;
     TextView textPercent;

  public void onClick(View v) {
        Intent i;
        switch(v.getId())
        {

        case R.id.butVote3:
                 // Start ASync Task
             new SendTextOperation().execute("");     
            break;


        case R.id.buGame:
                 // Start ASync Task
             new SendTextOperation().execute("");  
        break;
        }
    }


    private class SendTextOperation extends AsyncTask<String, Void, String> {

        @Override
        protected void onPreExecute() {

          //Update UI here
          mSEnd undefined error
          mSend.setText("Sending your vote to server");
          mSend.invalidate();
        }

        @Override
        protected String doInBackground(String... params) {
              // Talk to server here to avoid Ui hanging 
              // talk to server method undefined                 
              TalkToServer( mYes[mPes-1] );
              return null;
        }      

        @Override
        protected void onPostExecute(String result) {  
              // Update screen here after talk to server end

                  UpdateScreen(); 
                  mSend .setText("");
        }

  }
} // end of class

【问题讨论】:

    标签: android


    【解决方案1】:

    使用

    new SendTextOperation().execute();
    

    而不是这个

    new SendTextOperation().execute("");
    

    【讨论】:

      【解决方案2】:

      下面的链接中给出了一个完整的示例。

      应用程序将 HTTP 查询发送到 Web 服务器并取回查询的内容:

      Example: Android bi-directional network socket using AsyncTask

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-11-25
        • 1970-01-01
        • 2019-06-24
        • 2010-11-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多