2017-03-02 7 views
0

グループのユーザーリストがすでにMySQLのデータベースに置かれているユーザー名、パスワード、および変数が既にアップロードされているアプリケーションを作成しました。アプリが閉じられてもユーザーをログインさせておく - Android Studio - MySQL

以下はログインアクティビティで、ユーザーがログインして自分のユーザーエリアに移動できるようにします(loginrequestクラスもあります)。

私は援助が必要なのは、アプリケーションを終了したときでも、そのユーザーのログアウトまでアプリケーションのログインを維持することです。

可能であれば、アプリが個々のユーザーに公開されていないときにユーザー通知を送信できますか?

ありがとうございました。

@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

'SharedPreferences'にいくつかの値を保存し、アプリの開始時にそれをチェックしてください! –

答えて

1

問題を解決するためにSharedPreferencesを使用できます。ユーザーは「セッション」を持っている場合、これは検証する

使用すると、これは「セッション」ログインボタンをクリック

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

を設定するために使用

 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 
} 

を開始しましたかログアウトボタンでこれを使用します。

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

これを私のログインアクティビティに追加しようとするたびに、私のアプリケーションの起動アクティビティが表示されますが、ただ白い画面が表示されます。 Gradle Buildでエラーは発生しません。 – Daniel

+0

今すぐ申し訳ありません...あなたは白い画面の問題を解決できますか? – bullprog

+0

私はこの問題を解決しました。文字列を取得したいときに、最後に1つの文字列を設定するのを忘れました。 – Daniel

関連する問題