2017-03-02 2 views
0

Ich habe eine App erstellt, in der eine Benutzerliste für eine Gruppe bereits in einer MySQL-Datenbank gespeichert ist. Die ihnen zugewiesenen Benutzernamen, Kennwörter und Variablen sind bereits hochgeladen.Benutzer bei geschlossener App angemeldet bleiben - Android Studio - MySQL

Unten ist die Login-Aktivität, die es einem Benutzer ermöglicht, sich anzumelden und zu seinem eigenen Benutzerbereich zu gehen (Es gibt eine loginRequest-Klasse, die auch die Params überbringt).

Was ich Hilfe brauche, ist, dass die Anwendung angemeldet bleibt, bis sich der Benutzer abmeldet, selbst wenn er die App geschlossen hat.

Wird mir das auch erlauben, wenn möglich Benutzerbenachrichtigungen zu senden, wenn die App für einzelne Benutzer geschlossen ist?

danke.

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_login); 


    final EditText etUsername = (EditText) findViewById(R.id.etUsername); 
    final EditText etPassword = (EditText) findViewById(R.id.etPassword); 
    final Button bLogin = (Button) findViewById(R.id.bLogin); 
    final TextView registerLink = (TextView) findViewById(R.id.tvRegisterHere); 

    //Register Here button 
    registerLink.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Intent registerIntent = new Intent(LoginActivity.this, RegisterActivity.class); 
      LoginActivity.this.startActivity(registerIntent); 
     } 
    }); 

    //Login Button 
    bLogin.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      //Taking the username and password and converting it to a string 
      final String username = etUsername.getText().toString(); 
      final String password = etPassword.getText().toString(); 
      Response.Listener<String> responseListener = new Response.Listener<String>() { 
       @Override 
       public void onResponse(String response) { 
        try { 
         //Taking the JSONObject from the 000webhost database 

         JSONObject jsonResponse = new JSONObject(response); 
         //If the response is successful ie is there a username and password that match 
         boolean success = jsonResponse.getBoolean("success"); 
         if (success){ 
          //Gather the information below 
          String name = jsonResponse.getString("name"); 
          int var1 = jsonResponse.getInt("var1"); 
          int var2 = jsonResponse.getInt("var2"); 
          int var3 = jsonResponse.getInt("var3"); 
          int var4 = jsonResponse.getInt("var4"); 



          Intent intent = new Intent(LoginActivity.this, UserAreaActivity.class); 
          intent.putExtra("name", name); 
          intent.putExtra("username", username); 
          intent.putExtra("var1", var1); 
          intent.putExtra("var2", var2); 
          intent.putExtra("var3", var3); 
          intent.putExtra("var4", var4); 
          intent.putExtra("password", password); 

          //Start the User Area Activity 

          LoginActivity.this.startActivity(intent); 




         }else{ 

          AlertDialog.Builder builder = new AlertDialog.Builder(LoginActivity.this); 
          builder.setMessage("Login Failed") 
            .setNegativeButton("Retry", null) 
            .create() 
            .show(); 
         } 


        } catch (JSONException e) { 
         e.printStackTrace(); 
        } 
       } 
      }; 



      LoginRequest loginRequest = new LoginRequest(username, password, responseListener); 
      RequestQueue queue = Volley.newRequestQueue(LoginActivity.this); 
      queue.add(loginRequest); 

     } 
    }); 

} 
+0

Speichern Sie einen Wert in 'SharedPreferences' und suchen Sie beim App-Start danach! –

Antwort

1

Sie können SharedPreferences verwenden, um Ihr Problem zu lösen.

verwenden, um zu überprüfen, ob der Benutzer "Session" hat begonnen oder nicht

 private SharedPreferences sharedpreferences;  

    sharedpreferences=getApplicationContext().getSharedPreferences("Preferences", 0); 
        String login = sharedpreferences.getString("LOGIN", null); 


        if (login != null) { 
     //put your code if user is logged. For example, go to another activity 
     }else { 

// to go login activity 
} 

verwenden die "Sitzung", wenn klicken Sie auf Login-Button einstellen

SharedPreferences.Editor editor = sharedpreferences.edit(); 
         editor.putString("LOGIN", newUser.getEmail_user()); 
         editor.commit 

Verwenden Sie dies auf Abmeldetaste

Editor editor = sharedpreferences.edit(); 
        editor.remove("LOGIN"); 
        editor.commit(); 
+0

Jedes Mal, wenn ich versuche, dies meiner Login-Aktivität hinzuzufügen, die die Startaktivität für mich App ist, bekomme ich nur einen weißen Bildschirm. Ich bekomme keine Fehler in der Gradle Build. – Daniel

+0

Entschuldigung für die Antwort gerade jetzt ... können Sie das Problem mit dem weißen Bildschirm lösen? – bullprog

+0

Ich habe dieses Problem behoben. Ich habe gerade vergessen, eine Zeichenfolge als endgültig festzulegen, wenn ich die Zeichenfolge abrufen wollte. – Daniel

Verwandte Themen