登录活动问题

时间:2011-09-27 16:07:23

标签: java android eclipse facebook class

我目前正在开发一个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的任何建议吗?

3 个答案:

答案 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();
    }
}