title: AsyncTask: DoInBackground(String...) clashes with DoInBackground(Params...)?
body: <p>When trying to use <code>Async task</code> to carry out an HTTP post I get the following:</p>
  
  <pre><code>ASyncTask: DoInBackground(String...) clashes with DoInBackground(Params...) in Android.os.AsyncTask; attempting to use incompatible return type
  </code></pre>
  
  <p>How do I fix this? This is my first time using AsyncTask. </p>
  
  <p><strong>Specific line causing error:</strong></p>
  
  <pre><code>@Override
          protected String doInBackground(String... params) {
  </code></pre>
  
  <p><strong>Code from the full AsyncTask:</strong> </p>
  
  <pre><code>private class MyTask extends AsyncTask&lt;String, Void, Void&gt;
      {
          boolean success = false;
  
          @Override
          protected String doInBackground(String... params) {
              StringBuilder respData = new StringBuilder();
              URL url = new URL("MY_URL");
              URLConnection conn = url.openConnection();
              HttpURLConnection httpUrlConnection = (HttpURLConnection) conn;
  
              httpUrlConnection.setUseCaches(false);
              httpUrlConnection.setRequestProperty("User-Agent", "App");
              httpUrlConnection.setConnectTimeout(30000);
              httpUrlConnection.setReadTimeout(30000);
  
              httpUrlConnection.setRequestMethod("POST");
              httpUrlConnection.setDoOutput(true);
  
              OutputStream os = httpUrlConnection.getOutputStream();
              //InputStream postStream = toInputStream(toSubmit, "UTF-8");
              InputStream stream = new ByteArrayInputStream(toSubmit.getBytes(StandardCharsets.UTF_8));
              try {
                  copy(stream, os);
              } finally {
                  stream.close();
                  os.flush();
                  os.close();
              }
  
              httpUrlConnection.connect();
  
              int responseCode = httpUrlConnection.getResponseCode();
  
              if (200 == responseCode) {
                  InputStream is = httpUrlConnection.getInputStream();
                  InputStreamReader isr = null;
                  try {
                      isr = new InputStreamReader(is);
                      char[] buffer = new char[1024];
                      int len;
                      while ((len = isr.read(buffer)) != -1) {
                          respData.append(buffer, 0, len);
                      }
                  } finally {
                      if (isr != null)
                      {
                          isr.close();
                          success = true;
                      }
                  }
                  is.close();
              }
              else {
                  // use below to get error stream
                  // inputStream = httpUrlConnection.getErrorStream();
              }
              return "done";
          }
  
          @Override
          protected void onPostExecute(Void aVoid) {
              super.onPostExecute(aVoid);
  
              Toast toast = Toast.makeText(getApplicationContext(), "Success", Toast.LENGTH_SHORT);
  
          }
      }
  </code></pre>