title: Using AsyncTask
body: <p>Apologies if this is a simple question but I am very new to this and still learning.</p>
  
  <p>I have an app and when my users click the button to login after entering their details, it is crashing with android.os.NetworkOnMainThreadException
  I have discovered this is because I am performing a network operation on the main thread and to resolve I need to use AsyncTask, I am stuck however with the syntax.</p>
  
  <p>Here is my code after the button is clicked, calls a function to connect and then parses json into sqlite db. </p>
  
  <pre><code>// Login button Click Event
      btnLogin.setOnClickListener(new View.OnClickListener() {
  
          public void onClick(View view) {
              String email = inputEmail.getText().toString();
              String password = inputPassword.getText().toString();
              UserFunctions userFunction = new UserFunctions();
              JSONObject json = userFunction.loginUser(email, password);
  
              // check for login response
              try {
                  if (json.getString(KEY_SUCCESS) != null) {
                      loginErrorMsg.setText("");
                      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(getApplicationContext());
                          JSONObject json_user = json.getJSONObject("user");
  
                          // Clear all previous data in database
                          userFunction.logoutUser(getApplicationContext());
                          db.addUser(json_user.getString(KEY_NAME), json_user.getString(KEY_EMAIL), json.getString(KEY_UID), json_user.getString(KEY_CREATED_AT));                        
  
                          // Launch Dashboard Screen
                          Intent dashboard = new Intent(getApplicationContext(), DashboardActivity.class);
  
                          // Close all views before launching Dashboard
                          dashboard.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                          startActivity(dashboard);
  
                          // Close Login Screen
                          finish();
                      }else{
                          // Error in login
                          loginErrorMsg.setText("Incorrect username/password");
                      }
                  }
              } catch (JSONException e) {
                  e.printStackTrace();
              }
          }
      });
  </code></pre>
  
  <p>How do I change this to the correct class ? I am not passing URL's etc. I think it needs to be something like this , but I am really struggling to get the syntax right.</p>
  
  <p>Many thanks!!!</p>
  
  <pre><code>class login extends AsyncTask&lt;Void, Void, Void&gt; {
  
      private Exception exception;
  
      protected ??? doInBackground(???) {
          try {
  </code></pre>