亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何從AsyncTask返回布爾值?

如何從AsyncTask返回布爾值?

手掌心 2019-06-28 14:56:01
如何從AsyncTask返回布爾值?我有一些編輯文本,用戶輸入一個ftp地址,用戶名,密碼,端口和測試連接按鈕。如果成功地建立了一個連接,它將返回一個真的布爾值。boolean status = ftpConnect(_address, _username, _password,_port);                 ftpDisconnect();                 if (status == true) {                  Toast.makeText(SiteManager.this, "Connection Succesful",                  Toast.LENGTH_LONG).show();                  } else {                  Toast.makeText(SiteManager.this,                  "Connection Failed:" + status, Toast.LENGTH_LONG).show();                  }我正在重新編寫代碼以使用AsyncTask來執行各種ftp操作,但是如果成功地建立了連接,我如何返回一個布爾值呢?testConnection.setOnClickListener(new OnClickListener() {             @Override             public void onClick(View v) {                 _name = etSitename.getText().toString();                 _address = etAddress.getText().toString();                 _username = etUsername.getText().toString();                 _password = etPassword.getText().toString();                 _port = Integer.parseInt(etPort.getText().toString());                 AsyncConnectTask task = new AsyncConnectTask(SiteManager.this,                         _address, _username, _password, _port);                 task.execute();                 // boolean status = ftpConnect(_address, _username, _password,                 // _port);                 // ftpDisconnect();                 // if (status == true) {                 // Toast.makeText(SiteManager.this, "Connection Succesful",                 // Toast.LENGTH_LONG).show();                 // savesite.setVisibility(0);                 // } else {                 // Toast.makeText(SiteManager.this,                 // "Connection Failed:" + status, Toast.LENGTH_LONG)                 // .show();                 // }             }         });
查看完整描述

3 回答

?
墨色風雨

TA貢獻1853條經驗 獲得超6個贊

public class AsyncConnectTask extends AsyncTask<Void, Void, Boolean> {@Override
    protected Boolean doInBackground(Void... params) {
               ....
               return true; /* or false */}@Override
    protected void onPostExecute(Boolean result) {
           // result holds what you return from doInBackground
    }}


查看完整回答
反對 回復 2019-06-28
?
慕姐8265434

TA貢獻1813條經驗 獲得超2個贊

聲明異步任務如下

public class AsyncConnectTask extends AsyncTask<Void, Void, Boolean>

第三個參數是doinback返回的結果參數。(第一個是異步任務Param,第二個是進度參數)

所以后臺和onpostExecute中的操作將是

@Overrideprotected Boolean doInBackground(Void... params) {

    boolean status = ftpHelper.ftpConnect(_address, _user, _pass, _port);
    return status;}@Overrideprotected void onPostExecute(Boolean result) {
    // use the result
    super.onPostExecute(result);
    progressDialog.dismiss();};

請記住,doInBackplace返回的值由onPostExecute作為參數進行還原。所以在onPostExecute方法中使用這個。您也可以在此方法中更新您的UI。


查看完整回答
反對 回復 2019-06-28
  • 3 回答
  • 0 關注
  • 896 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號