android - Values in sharedpreferences are not cleared -
i developing app in need manage users session i.e when user logs in first time must see login page , once authenticated redirected home screen , tht time value set in sharedpreferences. on home screen when user clicks on logout button values in shsredpreferences must cleared , next time user opens app must directed login page.unless , until user clicks logout must not shown login page. able store values in sharedpreferences not able delete them.
here code loginpage.java
package com.sess.eg; import android.app.activity; import android.content.intent; import android.content.sharedpreferences; import android.os.bundle; import android.preference.preferencemanager; import android.view.view; import android.widget.button; import android.widget.edittext; public class loginpage extends activity { /** called when activity first created. */ edittext acc,user,pin; button login; stringbuilder builder = new stringbuilder(); string username; sharedpreferences.editor prefs; @override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); // sharedpreferences prefs1 = getpreferences(mode_world_readable); // username= prefs1.getstring("user", "abcdef"); // // system.out.println(username); // // if(username.equals("ad")) // // { // system.out.println(username); // intent i=new intent(loginpage.this,homepage.class); // startactivity(i); // } setcontentview(r.layout.main); acc = (edittext) findviewbyid(r.id.ed_login_acc); user = (edittext) findviewbyid(r.id.ed_user_acc); pin = (edittext) findviewbyid(r.id.ed_pin_acc); login = (button) findviewbyid(r.id.login_button); sharedpreferences prefs1 = getpreferences(mode_world_readable); login.setonclicklistener(new button.onclicklistener(){ public void onclick(view v) { prefs.putstring("user", "ad"); prefs.commit(); //system.out.println(sendjson1()); //startservice(new intent(login.this, myservice.class)); intent = new intent(loginpage.this, homepage.class); startactivity(i); finish(); //system.out.println(username); } }); } @override protected void onstart() { sharedpreferences prefs1 = getpreferences(mode_world_readable); username= prefs1.getstring("user", "abcdef"); system.out.println(username); if(username.equals("ad")) { system.out.println(username); intent i=new intent(loginpage.this,homepage.class); startactivity(i); finish(); } super.onstart(); } } here code homepage.java package com.sess.eg; import android.app.activity; import android.content.intent; import android.content.sharedpreferences; import android.os.bundle; import android.view.view; import android.widget.button; public class homepage extends activity{ button logout; public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.home3); logout = (button) findviewbyid(r.id.logout); logout.setonclicklistener(new button.onclicklistener(){ public void onclick(view v) { sharedpreferences.editor prefs = getpreferences(mode_world_writeable).edit(); prefs.clear(); // prefs.commit(); sharedpreferences prefs1 = getpreferences(mode_world_readable); string username= prefs1.getstring("user", "abcdef"); system.out.println(username); finish(); } }); } }
in code:
//prefs.commit();
change this. remove comments.
prefs.commit();
commit()
called save preferences changes.
"commit preferences changes editor sharedpreferences object editing. atomically performs requested modifications, replacing whatever in sharedpreferences. note when 2 editors modifying preferences @ same time, last 1 call commit wins. "
read here.
Comments
Post a Comment