android - Redirect activity after facebook login -
i'm using android facebook sdk (4.01) login app facebook. facebook login mainactivity succeeds , use intent procced next activity. part works.
after in new activity (mainlobby) want able logout facebook , return previous mainactivity, pressing button. reason when press mainlobby closes, has mainlobby activity behind it. have press button twice mainactivity. why that?
main activity class code:
@override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); facebooksdk.sdkinitialize(getapplicationcontext()); setcontentview(r.layout.main_activity); fbloginbt = (loginbutton) findviewbyid(r.id.fbloginbt); callback = callbackmanager.factory.create(); fbloginbt.registercallback(callback, new facebookcallback<loginresult>() { @override public void onsuccess(loginresult loginresult) { system.out.println("onsuccess"); intent mainlobby = new intent(mainactivity.this, mainlobby.class); startactivity(mainlobby); } @override public void oncancel() { system.out.println("oncancel"); } @override public void onerror(facebookexception e) { system.out.println("onerror"); } }); fbloginbt.setonclicklistener(new view.onclicklistener() { @override public void onclick(view v) { loginmanager.getinstance().loginwithreadpermissions(mainactivity.this, arrays.aslist("public_profile")); } }); } @override protected void onactivityresult(int requestcode, int resultcode, intent data) { super.onactivityresult(requestcode, resultcode, data); callback.onactivityresult(requestcode, resultcode, data); }
main lobby class code:
@override public void onbackpressed() { if (mdrawerlayout.isdraweropen(gravity.left)) mdrawerlayout.closedrawer(gravity.left); else if (searchview.isshown() && !isclosed){ searchview.onactionviewcollapsed(); //collapse actionview searchview.setquery("", false); //clears query without submit isclosed = true; } else { loginmanager.getinstance().logout(); super.onbackpressed(); } }
update:
i works correct on emulator, in android studio. works described above when test on android phone device.
try :
private boolean ismainlobbystarted = false; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); facebooksdk.sdkinitialize(getapplicationcontext()); setcontentview(r.layout.main_activity); fbloginbt = (loginbutton) findviewbyid(r.id.fbloginbt); callback = callbackmanager.factory.create(); fbloginbt.registercallback(callback, new facebookcallback<loginresult>() { @override public void onsuccess(loginresult loginresult) { system.out.println("onsuccess"); intent mainlobby = new intent(mainactivity.this, mainlobby.class); if(!ismainlobbystarted) { startactivity(mainlobby); ismainlobbeystarted = true; } } @override public void oncancel() { system.out.println("oncancel"); } @override public void onerror(facebookexception e) { system.out.println("onerror"); } }); fbloginbt.setonclicklistener(new view.onclicklistener() { @override public void onclick(view v) { loginmanager.getinstance().loginwithreadpermissions(mainactivity.this, arrays.aslist("public_profile")); } }); } @override protected void onactivityresult(int requestcode, int resultcode, intent data) { super.onactivityresult(requestcode, resultcode, data); callback.onactivityresult(requestcode, resultcode, data); }
Comments
Post a Comment