我目前正在开发一个Android应用程序,该应用程序的第一个屏幕是LoginActivity,它正在使用facebook进行身份验证,并在用户请求中显示facebook登录对话框。整个登录过程运行良好,当您登录用户被带到一个新的活动。我在该活动中创建了一个注销功能,在整个应用程序中将用户从facebook中记录下来,但是。如果当用户处于您登录时的活动时按下Android设备上的“后退按钮”,则会为该用户显示loginactivity。我想让用户无法显示loginactivity,但我不知道如何。当用户从开始成功登录时,运行以下行:
Intent intent = new Intent().setClass(LoginActivity.this, LocationActivity.class);
startActivity(intent);
当用户成功退出MainActivity时,以下行将被破坏:
ApplicationController appController = (ApplicationController)getApplicationContext();
appController.setfullnametoNull();
appController.setuseridtoNull();
finish();
当用户当前登录时,有关如何使用户无法获得loginactivity的任何建议吗?
答案 0 :(得分:1)
finish()
该活动,如果用户导航到没有log out
的其他应用,那么当您返回应用并将用户重定向到check in the login activity
时,您应appropriate activity
。您需要为此保存login credentials
。您可以使用SharedPreferences
。
答案 1 :(得分:0)
使用您从登录活动后开始的活动发送的广播意图。然后使用登录活动作为广播意图的接收者。然后,您可以使用此广播为登录活动调用finish()。这样登录活动应该离开android活动堆栈。
答案 2 :(得分:0)
不确定我是否正确理解了您的问题...您说在登录后又启动了另一项活动,用户点击后退按钮并再次显示活动?
如果是:您可以使用startActivityForResult(intent, REQUEST_CODE)
而非使用startActivity(intent)
启动活动来阻止此操作。
然后你必须添加这个方法:
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == REQUEST_CODE) { finish(); } }