android异步任务重复执行api

时间:2016-02-11 05:08:18

标签: android-asynctask urlconnection

我正在使用Android Async Task功能来使用urlconnection执行api。这个api反过来发送电子邮件给选定的用户。现在的问题是我被这些电子邮件发送垃圾邮件起初我认为它是服务器端问题或我的脚本但我创建了一个新的api并在我的应用程序的IOS版本上使用它一切正常。但是当我在android上执行它时,我开始得到垃圾邮件,所以我认为问题在于我的android编程。

public class submitparse extends AsyncTask<String ,String,String> {

    String Url;

    @Override
    protected String doInBackground(String... params) {


        URL phonelink;
        HttpURLConnection urlConnection = null;

        try {
            phonelink = new URL(params[0]);

            urlConnection = (HttpURLConnection) phonelink
                    .openConnection();
            urlConnection.connect();
            InputStream in = urlConnection.getInputStream();

            InputStreamReader isw = new InputStreamReader(in);
            BufferedReader br = new BufferedReader(isw);
            String line = "";
            StringBuffer buffer = new StringBuffer();
            while ((line = br.readLine()) != null) {
                buffer.append(line);
            }
            String finalresult = buffer.toString();

            return finalresult;

        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                urlConnection.disconnect();
            } catch (Exception e) {
                e.printStackTrace(); //If you want further info on failure...
            }
        }

        return null;
    }

我正在使用此命令调用它..

  submit.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {


                String link =  "";
                new submitparse().execute(link);

        }
    });

在获得结果时,我开始另一个活动,其中link是包含url的字符串。

1 个答案:

答案 0 :(得分:0)

如果你不在乎,你也可以只使用一个新线程。这应该符合您的需求,并且工作正常。据我所知,你不需要使用AsyncTask,因此IMO正常线程会更好。

// Runnable uiThreadRunnable = new Runnable.....
Handler handler = new Handler(); // import android.os.Handler
Runnable runnable = new Runnable() {
    public void run() {
        // do your stuff
        // use 'handler.post(uiThreadRunnable);' to if you NEED to run something on main thread
    }
};

Thread thread = new Thread(runnable);
thread.start();