如何使用两个url调用异步任务

时间:2018-03-20 16:08:19

标签: java android

我需要使用不同的url调用asynctask。我有两个按钮,他们用不同的网址对服务器进行http发布,现在我可以用一个网址调用asynctask但是如何用不同的网址调用相同的功能..意思是按钮1下载网址1和按钮2下载网址号码2

   class DownloadFont extends AsyncTask<String, Integer, Boolean> {

        @Override
        protected void onPreExecute() {
            super.onPreExecute();

            progressDialog = new ProgressDialog(MainAc.this);
            progressDialog.setCancelable(false);
            progressDialog.setMessage("download"));
            progressDialog.setTitle("wait"));

            progressDialog.show();

        }

        protected void onProgressUpdate(Integer... progress) {
            super.onProgressUpdate(progress);

            progressDialog.setIndeterminate(false);
            progressDialog.setMax(100);
            progressDialog.setProgress(progress[0]);
            String info_download = "";
            if (progress[0] > 99) {

               download = (getResources().getString("dff));

            } else {

                download = (getResources().getString(R.string.download)) + progress[0] + "%";
            }
            progressDialog.setMessage(download);

        }

        @Override
        protected void onPostExecute(Boolean result) {
            // TODO Auto-generated method stub
            super.onPostExecute(result);

            progressDialog.dismiss();

            if (result) {

                Toast.makeText(getApplicationContext(), getResources().getString(R.string.done), Toast.LENGTH_SHORT).show();

            } else {

                Toast.makeText(getApplicationContext(), getResources().getString(R.string.error), Toast.LENGTH_SHORT).show();

            }

        }

        @Override
        protected Boolean doInBackground(String... arg0) {
            Boolean flag = false;

            try {

                URL url = new URL("www.test_sweb.com/new.mp3");

                HttpURLConnection c = (HttpURLConnection) url.openConnection();
                c.setRequestMethod("GET");
                c.setDoOutput(true);
                c.connect();

2 个答案:

答案 0 :(得分:0)

在按钮单击列表器方法上,您可以将要执行的URL放在可以发送到doInBackground(String .. arg0)方法的字符串中:

DownloadFont.execute(yourview.getText(), URL_YOU_WANT_TO_EXEC);

并在您的代码中获取网址:

@Override
protected Boolean doInBackground(String... arg0) {
URL_YOU_WANT_TO_EXEC = arg0[0];
.
.
.
}

答案 1 :(得分:0)

在doInBackground中:

    @Override
    protected Boolean doInBackground(String... arg) {
        Boolean flag = false;

        try {

            URL url = new URL(arg[0]);

            HttpURLConnection c = (HttpURLConnection) url.openConnection();
            c.setRequestMethod("GET");
            c.setDoOutput(true);
            c.connect();

在您的活动中或您想要开始任务的地方(onClick):

string URL = "www.test_sweb.com/new.mp3";//Or the url you need
new DownloadFont().execute(URL)