Kivy应用在Android上锁屏后关闭,怎样避免?

1 投票
1 回答
2177 浏览
提问于 2025-04-18 10:23

我最近开始学习kivy框架,刚做了一个简单的计算器应用。我已经生成了一个.apk文件,并在安卓上运行,但遇到了一个问题。

当屏幕手动锁定或者因为时间自动锁定时,应用会自动关闭,之前输入的所有数据(数字)都会丢失,所以我每次都得重新启动应用并重新输入数字。

我想问问有没有办法避免这种情况。是不是需要在python代码或者kv语言文件中加一些代码?我希望当屏幕锁定后再解锁时,应用能保留之前的状态。

另外,我也尝试过直接从kivy启动器启动应用,而不是通过之前的.apk文件,但结果还是一样,所以我觉得这可能是python代码或kv语言代码的问题,而不是打包应用时使用buildozer工具的问题。

1 个回答

5

你需要为你的应用程序实现一个 on_pause 方法,具体内容可以参考 文档

kivy 文档中的示例是

class TestApp(App):

   def on_pause(self):
      # Here you can save data if needed
      return True

   def on_resume(self):
      # Here you can check if any data needs replacing (usually nothing)
      pass

请注意,你不能保证你的应用状态会被保存——在应用暂停时,安卓系统可能会在没有任何提示的情况下关闭它。因此,确保在 on_pause 方法中保存你需要的数据。

撰写回答