title: Android - AsyncTask not executing
body: <p>I know there are already a lot of questions with this title but I still haven't found a solution to work for my case.</p>
  
  <p>I have the following code that gets the users data from an online database. The problem is, as stated in the title, that the <code>AsyncTask</code> doesn't start.</p>
  
  <p>Here's my code:</p>
  
  <pre><code>protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      getData(); // retrieves "friends" data from database
      FloatingActionButton btn3 = (FloatingActionButton) findViewById(R.id.button_add_new_friend);
      btn3.setBackgroundTintList(getResources().getColorStateList(R.color.Blonde));
      btn3.setOnClickListener(new View.OnClickListener() {
          @Override
          public void onClick(View v) {
  
              LayoutInflater layoutInflater = LayoutInflater.from(profile.this);
              View promptView = layoutInflater.inflate(R.layout.input_new_friend, null);
              AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(profile.this);
              alertDialogBuilder.setView(promptView);
  
              final EditText editText1 = (EditText) promptView.findViewById(R.id.edittext_addnewfriend);
  
              // setup a dialog window
              alertDialogBuilder.setCancelable(false)
                  .setPositiveButton("OK", new DialogInterface.OnClickListener() {
                      public void onClick(DialogInterface dialog, int id) {
  
                          StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
                          StrictMode.setThreadPolicy(policy);
  
                          InputStream is = null;
  
                          // add values to the database
                          String friend = "" + editText1.getText();
  
                          // Verify the user in the USERS database - get users data from the dabase
                          GetDataJSON g = new GetDataJSON();
                          g.execute();                                
                          if (friends.contains(friend)) // if you are already friends with that user
                              Toast.makeText(getApplicationContext(), "You are already friends with that user!",
                                  Toast.LENGTH_LONG).show();
                          else {
                              if (!users.contains(friend)) // the user doesn't exist in our database
                                  Toast.makeText(getApplicationContext(), "That user doesn't exist! You either haven't introduced the right email or he's not a registered user within Poinder.",
                                      Toast.LENGTH_LONG).show();
                          else // the user exists so we add him to the friends list
                          {
                              //do something
                          }
  }
  
  // Getting the users
  protected void showList2(){
      try {
          JSONObject jsonObj = new JSONObject(myJSON);
          people = jsonObj.getJSONArray(TAG_RESULTS);
  
          for(int i=0;i&lt;people.length();i++){
              JSONObject c = people.getJSONObject(i);
              String user = c.getString(TAG_USER);
              String email = c.getString(TAG_EMAIL);
              Double location_latitude = c.getDouble(TAG_LATITUDE);
              Double location_longitude = c.getDouble(TAG_LONGITUDE);
  
              users.add(email);
          }
  
      } catch (JSONException e) {
          e.printStackTrace();
      }
  
  }
  
  // Getting the users
  private class GetDataJSON extends AsyncTask&lt;Void, Void, String&gt; {
  
      @Override
      protected String doInBackground(Void... params) {
          DefaultHttpClient httpclient = new DefaultHttpClient(new BasicHttpParams());
          HttpPost httppost = new HttpPost("http://xxxxxxx/friends_out.php");
  
          // Depends on your web service
          httppost.setHeader("Content-type", "application/json");
  
          InputStream inputStream = null;
          String result = null;
          try {
              HttpResponse response = httpclient.execute(httppost);
              HttpEntity entity = response.getEntity();
  
              inputStream = entity.getContent();
              // json is UTF-8 by default
              BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"), 8);
              StringBuilder sb = new StringBuilder();
  
              String line = null;
              while ((line = reader.readLine()) != null)
              {
                  sb.append(line + "\n");
              }
              result = sb.toString();
          } catch (Exception e) {
              // Oops
          }
          finally {
              try{if(inputStream != null)inputStream.close();}catch(Exception squish){}
          }
          return result;
      }
  
      @Override
      protected void onPostExecute(String result){
          myJSON=result;
          showList2();
      }
  }
  </code></pre>
  
  <p>Any idea what other method I should use instead? Or preferably how I should modify this one to work and any ideas why my <code>AsyncTask</code> never starts?</p>
  
  <p>EDIT: I applied all the suggestions mentioned below and unfortunately none of them work so far (my <code>AsyncTask</code> still doesn't start).</p>
  
  <p>And another question: using more than one <code>AsyncTask</code> in the same activity has anything to do with my problem?</p>