微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

检查用户登录并启动LoginActivity

如何解决检查用户登录并启动LoginActivity

| 我想知道什么是最好的方法: 我查询需要登录用户的API。当应用程序开始进行登录时,如果正确,则会在首选项中存储用户/密码。 登录后,如果尝试从API调用方法时,如果任何活动中都发生NOT_LOGGED错误,我将从首选项中检索用户/密码,然后再次登录。 如果成功,我的程序将再次尝试API查询。如果没有,它将打开LoginActivity。那是我不知道该怎么做的地方。 作为“重新登录”的方法,它已在我决定在MyApp中实现的几个活动中使用,该类从Application扩展而来,使对象在整个活动生命周期中都保持活动状态。但是我不能从那里关闭活动堆栈,可以吗? 我的想法是使用以下方法关闭当前活动堆栈并打开“登录”之一:
if(!mMyApp.relogin(mCtx)){
    Intent intent=new Intent(mCtx,activitylogin.class);    
    intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);                    
    startActivity(intent);
    finish();
}
但是我必须从适当的活动中调用方法完成,而不是从MyApp中调用。 所以我必须在使用use1ѭ方法的每个类中重复所有代码。 您是否认为我以正确的方式解决问题,还是应该更改策略?顺便说一句,您认为实现不同活动调用方法的最佳位置是什么。到目前为止,我一直在使用单例,但是如果gc清除内存,我可能会丢失该信息。 谢谢, 大卫。     

解决方法

        如果您将“ 2”作为“活动”实例(而不是通用上下文),则可以在其中调用“ 3”方法。尝试一下,看看:它应该可以工作。 无论如何,当您使用
Intent.FLAG_ACTIVITY_CLEAR_TOP
时,它将自动销毁所有活动,因此
finish
可能是多余的。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。