Session are useful when you want to store user data globally through out the application. This can be done in two ways. One is storing them in a global variables and second is storing the data in shared preferences. The problem with storing data in global variable is data will be lost once user closes the application, but storing the data in shared preferences will be persistent even though user closes the application.

Download Code

Application shared preferences allows you to save and retrieve key, value pair data. Before getting into tutorial, I am giving basic information needed to work with shared preferences.

Initialization

Application shared preferences can be fetched using getSharedPreferences() method.You also need an editor to edit and save the changes in shared preferences. The following code can be used to get application shared preferences.

SharedPreferences pref = getApplicationContext().getSharedPreferences("MyPref", 0); // 0 - for private mode
Editor editor = pref.edit();

Storing Data

You can save data into shared preferences using editor. All the primitive data types like booleans, floats, ints, longs, and strings are supported. Call editor.commit() in order to save changes to shared preferences.

editor.putBoolean("key_name", true); // Storing boolean - true/false
editor.putString("key_name", "string value"); // Storing string
editor.putInt("key_name", "int value"); // Storing integer
editor.putFloat("key_name", "float value"); // Storing float
editor.putLong("key_name", "long value"); // Storing long

editor.commit(); // commit changes

Retrieving Data

Data can be retrived from saved preferences by calling getString() (For string) method. Remember this method should be called on Shared Preferences not on Editor.

// returns stored preference value
// If value is not present return second param value - In this case null
pref.getString("key_name", null); // getting String
pref.getInt("key_name", null); // getting Integer
pref.getFloat("key_name", null); // getting Float
pref.getLong("key_name", null); // getting Long
pref.getBoolean("key_name", null); // getting boolean

Clearing / Deleting Data

If you want to delete from shared preferences you can call remove(“key_name”) to delete that particular value. If you want to delete all the data, call clear()

editor.remove("name"); // will delete key name
editor.remove("email"); // will delete key email

editor.commit(); // commit changes

Following will clear all the data from shared preferences

editor.clear();
editor.commit(); // commit changes

The following is a simple tutorial which will have a login form and a dashboard screen. At first user will login using login details and once he successfully logged in his credentials (name, email) will be stored in shared preferences.

——————————————————————————————————————————————————-

User Session Management using Shared Preferences

1. Create a new project in Eclipse IDE File ⇒ New ⇒ Android Application Project and fill all the required details
2. I am adding alert dialog manager class to show alert messages while validating the login form. Create a new class and name it as AlertDialogManager.java and paste the following code.

package com.androidhive.sessions;


import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
 
public class AlertDialogManager {
    /**
     * Function to display simple Alert Dialog
     * @param context - application context
     * @param title - alert dialog title
     * @param message - alert message
     * @param status - success/failure (used to set icon)
     *               - pass null if you don't want icon
     * */
    public void showAlertDialog(Context context, String title, String message,
            Boolean status) {
        AlertDialog alertDialog = new AlertDialog.Builder(context).create();
 
        // Setting Dialog Title
        alertDialog.setTitle(title);
 
        // Setting Dialog Message
        alertDialog.setMessage(message);
 
        if(status != null)
            // Setting alert dialog icon
            alertDialog.setIcon((status) ? R.drawable.success : R.drawable.fail);
 
        // Setting OK Button
        alertDialog.setButton("OK", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int which) {
            }
        });
 
        // Showing Alert Message
        alertDialog.show();
    }
}

3. I am writing all session related functions in one class to make them available in all activities. Create a new class named SessionManagement.java and add following lines of code

package com.androidhive.sessions;

import java.util.HashMap;

import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;

public class SessionManager {
	// Shared Preferences
	SharedPreferences pref;
	
	// Editor for Shared preferences
	Editor editor;
	
	// Context
	Context _context;
	
	// Shared pref mode
	int PRIVATE_MODE = 0;
	
	// Sharedpref file name
	private static final String PREF_NAME = "AndroidHivePref";
	
	// All Shared Preferences Keys
	private static final String IS_LOGIN = "IsLoggedIn";
	
	// User name (make variable public to access from outside)
	public static final String KEY_NAME = "name";
	
	// Email address (make variable public to access from outside)
	public static final String KEY_EMAIL = "email";
	
	// Constructor
	public SessionManager(Context context){
		this._context = context;
		pref = _context.getSharedPreferences(PREF_NAME, PRIVATE_MODE);
		editor = pref.edit();
	}

4. In this example i am storing login status, name, email in shared preferences, so i added a function called createLoginSession(String name, String email) to SessionManagement class. Add the following function to SessionManagement.java.

> This function simply stores login status(true), name, email in shared preferences.

/**
	 * Create login session
	 * */
	public void createLoginSession(String name, String email){
		// Storing login value as TRUE
		editor.putBoolean(IS_LOGIN, true);
		
		// Storing name in pref
		editor.putString(KEY_NAME, name);
		
		// Storing email in pref
		editor.putString(KEY_EMAIL, email);
		
		// commit changes
		editor.commit();
	}

5.In order to get the stored preferences data, I added a function called getUserDetails() with the following code.

> The following function will read shared preferences and returns user data in HashMap

/**
	 * Get stored session data
	 * */
	public HashMap<String, String> getUserDetails(){
		HashMap<String, String> user = new HashMap<String, String>();
		// user name
		user.put(KEY_NAME, pref.getString(KEY_NAME, null));
		
		// user email id
		user.put(KEY_EMAIL, pref.getString(KEY_EMAIL, null));
		
		// return user
		return user;
	}

6. To check whether user logged in or not i added a function checkLogin() which you can call in all Activities to check user login status.

> This function simply check user login status from shared preferences and if user is not login it will redirect user to LoginActivity

/**
	 * Check login method wil check user login status
	 * If false it will redirect user to login page
	 * Else won't do anything
	 * */
	public void checkLogin(){
		// Check login status
		if(!this.isLoggedIn()){
			// user is not logged in redirect him to Login Activity
			Intent i = new Intent(_context, LoginActivity.class);
			// Closing all the Activities
			i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
			
			// Add new Flag to start new Activity
			i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
			
			// Staring Login Activity
			_context.startActivity(i);
		}
		
	}

7. Add a function called logoutUser() to clear all the data from shared preferences. Call this function when you want to logout the user.

> This function clears all session data and redirect the user to LoginActivity

/**
	 * Clear session details
	 * */
	public void logoutUser(){
		// Clearing all data from Shared Preferences
		editor.clear();
		editor.commit();
		
		// After logout redirect user to Loing Activity
		Intent i = new Intent(_context, LoginActivity.class);
		// Closing all the Activities
		i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
		
		// Add new Flag to start new Activity
		i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
		
		// Staring Login Activity
		_context.startActivity(i);
	}

Final Code

package com.androidhive.sessions;

import java.util.HashMap;

import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;

public class SessionManager {
	// Shared Preferences
	SharedPreferences pref;
	
	// Editor for Shared preferences
	Editor editor;
	
	// Context
	Context _context;
	
	// Shared pref mode
	int PRIVATE_MODE = 0;
	
	// Sharedpref file name
	private static final String PREF_NAME = "AndroidHivePref";
	
	// All Shared Preferences Keys
	private static final String IS_LOGIN = "IsLoggedIn";
	
	// User name (make variable public to access from outside)
	public static final String KEY_NAME = "name";
	
	// Email address (make variable public to access from outside)
	public static final String KEY_EMAIL = "email";
	
	// Constructor
	public SessionManager(Context context){
		this._context = context;
		pref = _context.getSharedPreferences(PREF_NAME, PRIVATE_MODE);
		editor = pref.edit();
	}
	
	/**
	 * Create login session
	 * */
	public void createLoginSession(String name, String email){
		// Storing login value as TRUE
		editor.putBoolean(IS_LOGIN, true);
		
		// Storing name in pref
		editor.putString(KEY_NAME, name);
		
		// Storing email in pref
		editor.putString(KEY_EMAIL, email);
		
		// commit changes
		editor.commit();
	}	
	
	/**
	 * Check login method wil check user login status
	 * If false it will redirect user to login page
	 * Else won't do anything
	 * */
	public void checkLogin(){
		// Check login status
		if(!this.isLoggedIn()){
			// user is not logged in redirect him to Login Activity
			Intent i = new Intent(_context, LoginActivity.class);
			// Closing all the Activities
			i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
			
			// Add new Flag to start new Activity
			i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
			
			// Staring Login Activity
			_context.startActivity(i);
		}
		
	}
	
	
	
	/**
	 * Get stored session data
	 * */
	public HashMap<String, String> getUserDetails(){
		HashMap<String, String> user = new HashMap<String, String>();
		// user name
		user.put(KEY_NAME, pref.getString(KEY_NAME, null));
		
		// user email id
		user.put(KEY_EMAIL, pref.getString(KEY_EMAIL, null));
		
		// return user
		return user;
	}
	
	/**
	 * Clear session details
	 * */
	public void logoutUser(){
		// Clearing all data from Shared Preferences
		editor.clear();
		editor.commit();
		
		// After logout redirect user to Loing Activity
		Intent i = new Intent(_context, LoginActivity.class);
		// Closing all the Activities
		i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
		
		// Add new Flag to start new Activity
		i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
		
		// Staring Login Activity
		_context.startActivity(i);
	}
	
	/**
	 * Quick check for login
	 * **/
	// Get Login State
	public boolean isLoggedIn(){
		return pref.getBoolean(IS_LOGIN, false);
	}
}

8. Until now we are done creating Session Management class and now we are going to learn how to use this class in your application. For this create a simple login form asking username, password.

Create a layout xml file and a class to create login form. Name the xml file as activity_login.xml and class name as LoginActivity.java

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:padding="10dip">

   	<!-- Email Label -->
    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Username (Enter 'test')"
        android:singleLine="true"
        android:layout_marginBottom="5dip"/>
    
    <!-- Email input text -->
    <EditText android:id="@+id/txtUsername"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="10dip"/>
    
    <!-- Password Label -->
    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Password (Enter 'test')"
        android:layout_marginBottom="5dip"/>
    
    <!-- Password input text -->
    <EditText android:id="@+id/txtPassword"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="20dip"
        android:password="true"
        android:singleLine="true"/>
    
    <!-- Login button -->
    <Button android:id="@+id/btnLogin"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Login"/>

</LinearLayout>

For testing purpose i am checking username, password as test, test.

Once the user enters correct login details a session will be created by calling session.createLoginSession(“Android Hive”, “anroidhive@gmail.com”) and user is redirected to MainActivity.

package com.androidhive.sessions;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class LoginActivity extends Activity {
	
	// Email, password edittext
	EditText txtUsername, txtPassword;
	
	// login button
	Button btnLogin;
	
	// Alert Dialog Manager
	AlertDialogManager alert = new AlertDialogManager();
	
	// Session Manager Class
	SessionManager session;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login); 
        
        // Session Manager
        session = new SessionManager(getApplicationContext());                
        
        // Email, Password input text
        txtUsername = (EditText) findViewById(R.id.txtUsername);
        txtPassword = (EditText) findViewById(R.id.txtPassword); 
        
        Toast.makeText(getApplicationContext(), "User Login Status: " + session.isLoggedIn(), Toast.LENGTH_LONG).show();
        
        
        // Login button
        btnLogin = (Button) findViewById(R.id.btnLogin);
        
        
        // Login button click event
        btnLogin.setOnClickListener(new View.OnClickListener() {
			
			@Override
			public void onClick(View arg0) {
				// Get username, password from EditText
				String username = txtUsername.getText().toString();
				String password = txtPassword.getText().toString();
				
				// Check if username, password is filled				
				if(username.trim().length() > 0 && password.trim().length() > 0){
					// For testing puspose username, password is checked with sample data
					// username = test
					// password = test
					if(username.equals("test") && password.equals("test")){
						
						// Creating user login session
						// For testing i am stroing name, email as follow
						// Use user real data
						session.createLoginSession("Android Hive", "anroidhive@gmail.com");
						
						// Staring MainActivity
						Intent i = new Intent(getApplicationContext(), MainActivity.class);
						startActivity(i);
						finish();
						
					}else{
						// username / password doesn't match
						alert.showAlertDialog(LoginActivity.this, "Login failed..", "Username/Password is incorrect", false);
					}				
				}else{
					// user didn't entered username or password
					// Show alert asking him to enter the details
					alert.showAlertDialog(LoginActivity.this, "Login failed..", "Please enter username and password", false);
				}
				
			}
		});
    }        
}
android session login form
android login failed

9. After user redirected to MainActivity, I am getting stored session data by calling getUserDetails() and displayed in textviews.

> session.checkLogin() is called to check user login status. Here if user is not login he will be redirected to LoginActivity.java
> If user is logged in, user details are fetched by calling session.getUserDetails() and displayed in textviews.
> Also I have logout button which invokes a function session.logoutUser() to clear the session data.
Layout code for activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:padding="10dip">
    
    <!-- Name Label -->
    <TextView
        android:id="@+id/lblName"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:singleLine="true"
        android:layout_marginTop="40dip"
        android:layout_marginBottom="10dip"/>

   	<!-- Email Label -->
    <TextView
        android:id="@+id/lblEmail"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:singleLine="true"
        android:layout_marginBottom="40dip"/>
    
    <!-- Button to show session data -->
    <Button android:id="@+id/btnLogout"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Logout"/>
</LinearLayout>

Code for MainActivity.java

package com.androidhive.sessions;

import java.util.HashMap;

import android.app.Activity;
import android.os.Bundle;
import android.text.Html;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends Activity {
	
	// Alert Dialog Manager
	AlertDialogManager alert = new AlertDialogManager();
	
	// Session Manager Class
	SessionManager session;
	
	// Button Logout
	Button btnLogout;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        // Session class instance
        session = new SessionManager(getApplicationContext());
        
        TextView lblName = (TextView) findViewById(R.id.lblName);
        TextView lblEmail = (TextView) findViewById(R.id.lblEmail);
        
        // Button logout
        btnLogout = (Button) findViewById(R.id.btnLogout);
        
        Toast.makeText(getApplicationContext(), "User Login Status: " + session.isLoggedIn(), Toast.LENGTH_LONG).show();
        
        
        /**
         * Call this function whenever you want to check user login
         * This will redirect user to LoginActivity is he is not
         * logged in
         * */
        session.checkLogin();
        
        // get user data from session
        HashMap<String, String> user = session.getUserDetails();
        
        // name
        String name = user.get(SessionManager.KEY_NAME);
        
        // email
        String email = user.get(SessionManager.KEY_EMAIL);
        
        // displaying user data
        lblName.setText(Html.fromHtml("Name: <b>" + name + "</b>"));
        lblEmail.setText(Html.fromHtml("Email: <b>" + email + "</b>"));
        
        
        /**
         * Logout button click event
         * */
        btnLogout.setOnClickListener(new View.OnClickListener() {
			
			@Override
			public void onClick(View arg0) {
				// Clear the session data
				// This will clear all session data and 
				// redirect user to LoginActivity
				session.logoutUser();
			}
		});
    }
        
}
android user session data

10. Open AndroidManifest.xml file, add the following code and run the project.

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.androidhive.sessions"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="15" />

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="Dashboard Screen" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        
        <!-- DashBoard / MainActivity -->
        <activity
            android:name=".LoginActivity"
            android:label="User Login" >
        </activity>
    </application>

</manifest>
android user session management
Subscribe
Notify of
guest
247 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
acetiendung
7 years ago

Thank you very much..!

heraldo
heraldo
7 years ago

very helpful info ravi..helps alot..especially new to android

ZHicham
ZHicham
7 years ago

how to handle sessions from php web pages inside webview

haozhenxiao
haozhenxiao
7 years ago

What a remarkable tutorial,thank you very much.

venkat
venkat
7 years ago

Hello Ravi am new to android.. i have problem with my SessionManagement.java followed by ur SessionManagement.java .. In my SessionManagemn.java., i stored
3 data ip,username,password from loginActivity.java but when am getting those data 3 values in MainActivity.java it returning ip address value only..

i think it is nice post of beginners..

Om
Om
7 years ago

Hi Ravi Sir,

Your all tutorials are the best examples of excellency and brilliancy in android.
keep it up !

Samarth Mishra
Samarth Mishra
7 years ago
Reply to  Om

Hey I am new to android. I find all these tutorials and applicaiions so great.
I really want a little help here. Whatever code I am downloading is showing a “Project has no default.properties file! Edit the project properties to set one”
Error. What should I do?

andcsie
andcsie
7 years ago

Is this code available if i use a Sqlite database?
Thank you!

felix
felix
7 years ago

So, what you recommend to managment the session???? Thanks!!!

Samarth Mishra
Samarth Mishra
7 years ago

Hey I am new to android. I find all these tutorials and applicaiions so great.
I really want a little help here. Whatever code I am downloading is showing a “Project has no default.properties file! Edit the project properties to set one”
Error. What should I do?

Kent
Kent
7 years ago

I also have the same problem, if you solved it, help me please

kumaran
kumaran
7 years ago

thanks a lot. . . .

Parvindra Singh Shekhawat
Parvindra Singh Shekhawat
7 years ago

i realy feel great when i use this tutorial …. your work is amazing nd marvless…. nice …. it helps me very much …. to improve my programing skills

Samarth Mishra
Samarth Mishra
7 years ago

Hey I am new to android. I find all these tutorials and applications so great.
I really want a little help here. Whatever code I am downloading is showing a “Project has no default.properties file! Edit the project properties to set one”
Error. What should I do?

Zain
Zain
7 years ago

Thanks is small word to say… Bro u did a good job… save us and much more 🙂

Rohan Poddar
Rohan Poddar
7 years ago

Nice Job. The class is very nicely written and very useful.

Pazuzu156
7 years ago

This helped me out more than you know. This may have been simple, but was perfect for what I needed in order to come up with my own solitions. Thanks.

manish
manish
7 years ago

hi…
how can i get the the value from button and set on edit text in same activity..plz mind the value is not parmanently stored…

temp
temp
7 years ago

when I make calls to the server, how can I know that the calls came from a particular user and not anyone else?

phyllis Wanjiru
phyllis Wanjiru
7 years ago

hey your tutorials are very helpfull, am working on a small system and need help with the sqlite db..

Hima Javvadi
Hima Javvadi
7 years ago

In an online test were we are using one list for 7 questions where one layout with two questions repeating in the loop,for next set of questions, my radio buttons and check box once selected for few question and next going back and clicking selected answers are changed : any solution can you refer

Mofe-hendy Ejegi
Mofe-hendy Ejegi
5 years ago
Reply to  Hima Javvadi

try storing the selected answers in a framework, such as a list, or map. then whenever you return to a previously answered question, make a call to that list or map, to get the previously selected answer, then based on the answer, use the setSelected(true) function on the corresponding radio button

M.S.
M.S.
7 years ago

Thanks so much for your all useful tutorials.

shakeeb hussain
shakeeb hussain
7 years ago

Excellent Work …

sameer
sameer
5 years ago

Nice Code Thanx.,

Edogawa Conan
Edogawa Conan
7 years ago

thank you very much

Balaji D
Balaji D
7 years ago

in MainActivity, after the line

session.checkLogin();

check for the condition

if (!session.isLoggedIn()) {
finish();
}

Boy
Boy
7 years ago

I found a problem when pressing “back” button at login screen. It will bring me to main screen without logging in.

Galih
Galih
6 years ago
Reply to  Boy

you just need a little modify of that’s code. 🙂

syndy
syndy
6 years ago
Reply to  Galih

what modification should be done for that?

anwar
anwar
5 years ago
Reply to  syndy

@Override

public void onBackPressed() {

Log.d(“CDA”, “onBackPressed Called”);

Intent setIntent = new Intent(Intent.ACTION_MAIN);

setIntent.addCategory(Intent.CATEGORY_HOME);

setIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

startActivity(setIntent);

finish();

}

dis will work

Jaskiran Saini
Jaskiran Saini
2 years ago
Reply to  anwar

If we again start the app logout page still opens with null entries!
How to avoid this ?

Banny
Banny
6 years ago
Reply to  Galih

I’ve got the same problem! help me

Yakhtar Ali
Yakhtar Ali
6 years ago
Reply to  Banny

Put this code in your Login class

@Override
public void onBackPressed() {
finish();
}

anwar
anwar
5 years ago
Reply to  Yakhtar Ali

still same result.. pls help!

Anony
Anony
7 years ago

why there is isLoggedIn() method on checkLogin() method even though you don’t declare any isLoggedIn()?

Galih
Galih
6 years ago
Reply to  Anony

because the value of ‘pref’ has been edited using ‘editor’
you must see ‘editor.putBoolean(IS_LOGIN, true);’ to assign, and pref.getBoolean(IS_LOGIN,false). to get the value.

aik
aik
6 years ago
Reply to  Galih

i dont understand

Andy
Andy
6 years ago

Good tutorial. Shouldn’t SessionManager be singleton? We are crating a “new SessionManager” object in every activity of the app. Is that necessary.

ado
ado
6 years ago

good and how make registration?

syndy
syndy
6 years ago

Thanks for this helpful tutorial, but when pressing “back” button after logging in, it is not clearing the text of username and password entered by the user, how to do that?

Thahzan Mohomed
Thahzan Mohomed
6 years ago
Reply to  syndy

You probably figured it out already, but here goes. You can clear the 2 EditTexts in the OnClickListener of the Login button.

txtUserName.setText(“”);
txtPassword.setText(“”);

But it will be a good idea to stop the user from going back to the login screen by pressing the back button. You can do this by the following code

@Override
public void onBackPressed() {
//Some stuff (Toast or something saying “You shall not pass”)
}

Banny
Banny
6 years ago

Thanks por this tutorial, but i have a question: When I press back button, my application returns to previous activity, you help me, please.

Yakhtar Ali
Yakhtar Ali
6 years ago
Reply to  Banny

Put this code in your Login class

@Override
public void onBackPressed() {
finish();
}

Banny
Banny
6 years ago
Reply to  Yakhtar Ali

Thanks a lot!

dev
dev
6 years ago

Hi Ravi, will u please tell me how to maintain session time in application.

Jet
Jet
6 years ago

this works fine for me, just need to change the IP address.. and this is EXACTLY what im looking for, thanks for the tutorial!!!!!!

Karthika J
Karthika J
6 years ago

nice explanation..this works for me.. thanks 🙂

Trần Tuấn Sơn
6 years ago

thanks for sharing… it’s very helpful 🙂

Oliva Valle
Oliva Valle
6 years ago

Excelente post, me ayudo mucho

Lufti
6 years ago

Thanks man, this is useful

Cristhian Camilo
Cristhian Camilo
6 years ago

This is really helpful. Thanks for sharing, I hope you upload more tutorials with different methods in order to save sessions in apps. For now, I will use this :):)

Archana Belote
Archana Belote
6 years ago

nice….its works..

Asif Hingora
Asif Hingora
6 years ago

Excellent very useful..

patel maulik
patel maulik
4 years ago
Reply to  Asif Hingora

hmm

Sara
Sara
6 years ago

Hi! Thanks for sharing. I am new to android, I have a question. How to display value such as username, age from MySQL on activity_main.xml after login ?

Stikozo
Stikozo
6 years ago

Is it possible to create a button for the user to be able to post data to a listview and be able to delete it??? If so can you please give me a little details or a tutorial reference ?

Thank you in advance

bsoykal
bsoykal
6 years ago

Good job dude 😉

NUR ARIF PRIHUTOMO
NUR ARIF PRIHUTOMO
5 years ago

Found wrong code on Session class, there is addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP) for kill all activities, it must be Intent.FLAG_ACTIVITY_CLEAR_TASK.

Gustavo Rozolin
Gustavo Rozolin
5 years ago

thanks you a lot of, your pega help me to make my firts Android App. https://play.google.com/store/apps/details?id=com.uifiu.android

Yan
Yan
5 years ago

Are you promotion your app?hah

Rgarcia
Rgarcia
5 years ago

Very helpfull tutorial. Thank you.

Yara
Yara
5 years ago

All your tutorials are helpful. Thank you very much.

Anh Le Hoang
Anh Le Hoang
5 years ago

It was very useful. Thanks for sharing.

Afshaan Shaikh
Afshaan Shaikh
5 years ago

Its a very useful example. thank you soo much…
Can u let me know how to connect the same with mysql database?

Mary Mose
Mary Mose
5 years ago

Very helpful but ı have a question if i make LoginActivity extends fragment how could i access the name and password

Daniel Gomez Rico
5 years ago

Why a hashmap instead of a User object?

Ravi Tamada
5 years ago

You can’t store the object directly. May be you can use gson to convert the object to json and store, convert the json back to object while retrieving.

247
0
Would love your thoughts, please comment.x
()
x