如何从AsyncTask返回布尔值?

如何从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();

                // }
            }
        });



手掌心
浏览 881回答 3
3回答

墨色风雨

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

慕姐8265434

声明异步任务如下public&nbsp;class&nbsp;AsyncConnectTask&nbsp;extends&nbsp;AsyncTask<Void,&nbsp;Void,&nbsp;Boolean>第三个参数是doinback返回的结果参数。(第一个是异步任务Param,第二个是进度参数)所以后台和onpostExecute中的操作将是@Overrideprotected&nbsp;Boolean&nbsp;doInBackground(Void...&nbsp;params)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;boolean&nbsp;status&nbsp;=&nbsp;ftpHelper.ftpConnect(_address,&nbsp;_user,&nbsp;_pass,&nbsp;_port); &nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;status;}@Overrideprotected&nbsp;void&nbsp;onPostExecute(Boolean&nbsp;result)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;use&nbsp;the&nbsp;result &nbsp;&nbsp;&nbsp;&nbsp;super.onPostExecute(result); &nbsp;&nbsp;&nbsp;&nbsp;progressDialog.dismiss();};请记住,doInBackplace返回的值由onPostExecute作为参数进行还原。所以在onPostExecute方法中使用这个。您也可以在此方法中更新您的UI。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Android
Java