android - 按下电源按钮时控制应用程序并返回应用程序

标签 android

我的应用程序在我的手机上运行得非常好(需要高清)。当我按下电源按钮并返回应用程序时,数据尚未重置。

用户向我发送了一个请求,要求当他们单击电源按钮 (dell streak) 并返回应用程序时,正在收集的数据将被重置。

如果按下后退按钮,我已经将数据保存在对象中

如何找出何时按下电源来保留数据以及当用户返回应用程序时我需要调用什么

感谢您的宝贵时间

最佳答案

很可能您的 Activity 在后台被终止。我认为 Dell Streak 更容易出现这种情况,因为与 HD 相比,它是一个较旧的设备,并且可能具有较少的 RAM,但我不确定任何 Dell 定制会占用多少(如果有的话)。

您可能不想专门监听电源按钮按下的情况,而是将适当的逻辑挂接到 Activitys lifecycle methods 上。 ,特别关注 Activity 创建和销毁时调用的方法,而不是暂停和恢复时调用的方法。

正在重置什么类型的数据?这些数据是远程获取的吗?有多种方法可以解决这个问题。

其中之一是在 Activity 被销毁时保留 UI 状态,请参阅 onSaveInstanceState(Bundle)

参见here有关保留数据的更多信息,其中包括数据库和共享首选项,这是将应用程序状态(或在某些情况下为 UI 状态)保存到上述 onSaveInstanceState() 方法的两种替代方法。这实际上取决于您在做什么:)

此外,此 Activity 的生命周期方法(如 onCreate())中是否触发了任何远程数据收集操作?如果是这样,您的应用程序可能有更好的架构,比如生命周期方法仅触发封装在 Service 中的基于时间的条件刷新请求(该请求也不太可能在后台被终止) ),这只会更新一些可以填充 UI 的模型数据(在内存或数据库支持中),但优点是它也可以持久保存,这样当您的 Activity 被终止时,它对用户来说是透明的!

希望这有帮助。

编辑:我只是想,如果您在按下后退按钮时保存状态,并在调用 onResume 或 onStart 时使用保存的状态重置 UI 状态,那么如果放置了 Activity,您是否可能只是完全清除状态除了按下后退按钮之外,任何其他操作都会进入后台(但不会被杀死),因为您保存的状态对象将是空白/空/包含默认值?如果是这样,那么上述方法仍然相关

关于android - 按下电源按钮时控制应用程序并返回应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7980334/

相关文章:

android - 在 Activity fragment 中访问 TextView

android - 如何将两个不同的 Firebase 项目连接到一个通用的 Firebase 数据库?

android - 如何使imageView脱离屏幕[Kotlin]

Android:如何让Borderless button的文字大小和TextView一样

java - 从另一个可安装的应用程序启动即时应用程序

javascript - CSS/JS 转换 :translate3d and scrolling - smooth on Android, 在 iPhone 上没有动量

android - 视频 View setVideoUri 在 Android 中失败

android - 使用 Parse Cloud 保存 Parse 用户

java - 使用InputStream读取器从/res/xml读取XML文件会产生无效字符/编码数据

android - 图像裁剪质量损失很大