2014-01-21 28 views
0

我有一款运行良好的iOS应用程序,保存了登录屏幕的奇怪问题。我的iOS应用程序在闲置后会显示登录屏幕

该应用程序通过向后端发送凭证登录。在成功登录后,令牌会返回到应用程序,该应用程序会将该令牌用于所有将来的请求。令牌的寿命很长。

基本上,我希望用户登录,直到他明确注销。

问题是,经过一段时间的闲置时间后,我去了应用程序,它已经回到登录屏幕。

我觉得这很奇怪。正如我所提到的,令牌有效期很长,即使在一段时间不活动后切换到应用程序,也不会触发与后端的任何通信。

所以我想知道它是否与视图hiearchy有关?登录屏幕呈现 - 在成功登录后 - 模态控制器,然后处理所有事情(从纸张菜单控制器:https://github.com/honcheng/PaperFoldMenuController)。

任何想法?我觉得有一些很简单,我忽略了...

+1

没有足够的细节我害怕。没有看到应用程序如何放在一起,什么触发它“回到登录屏幕”,没有任何人可以做什么来帮助你。 – trojanfoe

+0

存储您的登录凭证NSUserDefaults在键值对中,当用户点击注销按钮,然后从NSUserDefaults清除相同的键值对 - 通过这样做可以在本地管理登录会话 –

+0

没有足够的信息什么触发登录屏幕出现 – auspicious99

回答

3

我想到的是,iOS清除内存中的应用程序数据&再次重新启动应用程序,导致您的应用程序重新初始化。

您应该实现一些逻辑在下面的方法来存储您的凭证&重用他们在应用程序启动:

– application:willFinishLaunchingWithOptions: 
– application:didFinishLaunchingWithOptions: 
– applicationDidBecomeActive: 
– applicationWillResignActive: 
– applicationDidEnterBackground: 
– applicationWillEnterForeground: 
– applicationWillTerminate: 
– applicationDidFinishLaunching: 

我建议储存在– applicationWillResignActive:用户凭证和– applicationWillTerminate:

清除存储的凭据希望它有助于:)

+0

谢谢穆罕默德我会尝试看看这些方法会发生什么。我很有道理。 – rohdester

+0

只需跟进:看来你是对的。看了更多后,由于“内存压力”,iOS似乎关闭了应用程序。该应用程序本身没有使用太多的内存(23 MB),但通过使用很多不同的应用程序,我可以强制终止。我按照你提到的做法:在应用程序重新初始化时,将钥匙链中的凭证保存在钥匙串中并自动登录用户。感谢指导我的方向。 – rohdester

+0

你不止欢迎:) – MuhammadBassio

相关问题