title: What is the purpose of the return statement in ASynctask's doInBackground()?
body: <p>This aspect of my login system works just fine if I have the return statement set to 0 or 1, but fails if I use null. This is all adapted from  <a href="http://256design.com/blog/android-login-asynctask/" rel="nofollow">http://256design.com/blog/android-login-asynctask/</a> where this particular return looks as listed below my own code.</p>
  
  <pre><code>public LoginTask(Polling activity, ProgressDialog progressDialog)
      {
          this.activity = activity;
          this.progressDialog = progressDialog;
      }    
  
  protected Integer doInBackground(String... arg0) {
              EditText userName = (EditText)activity.findViewById(R.id.emailEditText);
              EditText passwordEdit = (EditText)activity.findViewById(R.id.passEditText);
  
  
              String email = userName.getText().toString();
              String password = passwordEdit.getText().toString();
              UserFunctions userFunction = new UserFunctions();
              JSONObject json = userFunction.loginUser(email, password);
              progressDialog.dismiss();
              // check for login response
              //Log.v("test", Integer.toString(jsonParser.getResponseCode()));
              try {
                  if (json.getString(KEY_SUCCESS) != null) {
                      //loginErrorMsg.setText("");
                      //loginFragment.loginErrorMsg.setText("Success");
                      String res = json.getString(KEY_SUCCESS);
  
                      if(Integer.parseInt(res) == 1){
                          //user successfully logged in
                          // Store user details in SQLite Database
                          DatabaseHandler db = new DatabaseHandler(activity.getApplicationContext());
                          JSONObject json_user = json.getJSONObject("user");
                          //Log.v("name", json_user.getString(KEY_NAME));
                          // Clear all previous data in database
                          userFunction.logoutUser(activity.getApplicationContext());
                          db.addUser(json_user.getString(KEY_NAME), json_user.getString(KEY_EMAIL), 
                                  json.getString(KEY_UID), json_user.getString(KEY_CREATED_AT));                        
  
  
                          // Close Login Screen
                          //finish();
                          //loginErrorMsg = (TextView)activity.findViewById(R.id.loginErrorMsg);
                          //loginErrorMsg.setText("logged in");
                          //passwordEdit.setText("");
                      }else{
                          // Error in login
                          //progressDialog.setMessage("Incorrect username or password");
                          //loginErrorMsg.setText("Incorrect username/password");
                      }
  
                  }
  
              } catch (NullPointerException e) {
                  e.printStackTrace();
  
              }
              catch (JSONException e) {
                  e.printStackTrace();
              }
  
              return 1;
          }
  </code></pre>
  
  <p>The tutorial that I used, take a look at responseCode:</p>
  
  <pre><code>protected Integer doInBackground(String... arg0) 
  {
      String result = "";
      int responseCode = 0;
      try 
      {
          HttpClient client = new DefaultHttpClient();
          HttpPost httppost = new HttpPost("http://www.256design.com/projectTransparency/project/headerLogin.php");
  
          List&lt;NameValuePair&gt; nameValuePairs = new ArrayList&lt;NameValuePair&gt;();
              nameValuePairs.add(new BasicNameValuePair("emailAddress", arg0[0]));
              nameValuePairs.add(new BasicNameValuePair("password", arg0[1]));
          httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
  
          int executeCount = 0;
          HttpResponse response;
          do
          {
              progressDialog.setMessage("Logging in.. ("+(executeCount+1)+"/5)");
              // Execute HTTP Post Request
              executeCount++;
              response = client.execute(httppost);
              responseCode = response.getStatusLine().getStatusCode();                        
              // If you want to see the response code, you can Log it
              // out here by calling:
              // Log.d("256 Design", "statusCode: " + responseCode)
          } while (executeCount &lt; 5 &amp;&amp; responseCode == 408);
  
          BufferedReader rd = new BufferedReader(new InputStreamReader(
                  response.getEntity().getContent()));
  
          String line;
          while ((line = rd.readLine()) != null)
          {
              result = line.trim();
          }
          id = Integer.parseInt(result);
      }
      catch (Exception e) {
          responseCode = 408;
          e.printStackTrace();
      }
      return responseCode;
  }
  </code></pre>