3

我有一个带有登录屏幕的应用程序,它将用户带到启动屏幕。如果用户离开应用程序,然后再次单击启动器图标,他必须重新登录。仅当我使用 apk 文件在设备上安装应用程序时才会发生这种情况。如果我在 Eclipse 连接到设备的情况下以调试模式运行它,那么这不会发生。在调试模式下,如果我在离开应用程序后单击启动器,我会返回到我的初始屏幕,这是预期的行为。

问题是,如果我使用 apk 文件在设备上安装应用程序,我不知道会发生什么。我无法访问日志或调试。启动画面不会在恢复时自动注销。

有谁知道为什么会发生这种情况或我可以做些什么来进一步调查?

4

3 回答 3

1

看看这个页面

我认为可能发生的是在 onPause 或 onStop 方法期间触发了某些事情,导致您的会话信息被忽略。是否调用 Pause 或 Stop 是可用资源的问题,并且在调试和正常运行模式下可能会产生不同的结果。

我建议将这些功能添加到您的活动中,查看哪些被调用(以及它们的创建和恢复合作伙伴)并确定这是否是您的问题的原因。

当应用程序失去焦点时,我个人也遇到过类似的资源被释放问题。

于 2013-04-23T23:01:39.093 回答
1

我猜说“当用户离开时”是指用户转到另一个应用程序或做其他事情。因此,在这种情况下,onPause()将在您的应用程序暂停以及onSaveInstanceState()您的应用程序被销毁时调用。

因此,您可能希望在两者中显式onPause()执行注销操作和onSaveInstanceState(),以便您的应用程序具有一致的行为。

于 2013-04-23T23:05:35.970 回答
0

我确实覆盖了生命周期方法,但是这个建议有效:

应用程序在启动器中按图标启动时完全重启

简单的设备重启即可解决问题

于 2013-04-24T12:46:46.977 回答