我想看看您如何处理Android上的登录问题。我正在开发一个应用程序,需要您登录才能使用。到目前为止我有两项活动。主屏幕和登录屏幕。我已经这样设置了。
登录屏幕是主屏幕。它要求用户登录。如果登录成功,则启动主屏幕,并在登录活动中调用完成。当用户注销时,我完成了主屏幕活动并开始登录活动。
这不能正常工作,因为当我离开应用程序然后返回时,即使在成功登录后,登录屏幕也会显示。
我在想,我必须跟踪用户登录或不登录服务的天气。然后,如果我已登录,登录活动将自动启动主屏幕。
或者,如果用户未登录,我可以启动将启动登录屏幕的主屏幕活动。
此类情景的典型Android模式是什么?
答案 0 :(得分:0)
首先,为了更有条理,您应该在此类中创建类似MyApplication extends Application
的内容,您可以在onSessionsCreated上创建静态方法并传递一个布尔值,这意味着显示或不显示您的主屏幕(不是登录屏幕)。
public static void onSessionCreated(Context context,CurrentFan currentFan,boolean startMainScreenActivity){ if(startMainScreenActivity){ Intent intent = new Intent(context,MainActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK); context.startActivity(意向); }
如果你正在使用MVC,你应该创建一个SessionsController来登录API中的用户,之后在回调登录时你应该调用onSessionCreated传递当前用户。
if (activity instanceof LoginActivity)
((LoginActivity)mActivity).onSessionCreated(user);
然后在您的LoginActivity中,您可以致电:
public void onSessionCreated(User currentUser) {
MyApplication.onSessionCreated(this, currentUser, true);
finish();
}
使用此模型,您将: - 使用您的MVC模型 - 使用您的API登录您的用户 - 使用MyApplication类
我认为这应该是一个好方法。希望对你有用。