2017-03-02 159 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来解决您的问题。

使用此来验证用户是否具有“会话”启动或不

 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 
} 

使用此设置了“会话”,当点击登录按钮

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

在退出按钮上使用此功能

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

每当我尝试将此添加到我的登录活动中,这是我App的启动活动时,我只会看到一个白色屏幕。 我在Gradle Build中没有遇到任何错误。 – Daniel

+0

刚刚回答抱歉......您可以解决白屏问题吗? – bullprog

+0

我解决了这个问题,我忘了将一个字符串设置为最终的字符串。 – Daniel

相关问题