【问题标题】:Kivy app running on android closes after the screen locks. How to avoid it?屏幕锁定后,在 android 上运行的 Kivy 应用程序关闭。如何避免?
【发布时间】:2014-08-10 07:21:16
【问题描述】:

我最近开始使用 kivy 框架。我刚刚制作了一个简单的计算器应用程序。我已经开始制作一个 .apk 并在 android 上运行它,但我遇到了问题。

当屏幕手动锁定时,由于时间原因,应用程序会自动关闭,丢失我之前引入的所有数据(数字),因此我必须再次启动它并重新引入数字。

我的问题是你是否知道一些避免这种情况的方法。如果需要python代码或kv语言文件上的一段代码。我不知道,但我希望当屏幕锁定并解锁时,应用程序保留其以前的状态。

PS:我也试过从kivy启动器启动应用程序,没有之前的.apk编译,但我得到了相同的结果,所以我认为这将是python代码或kv语言代码的问题,在使用 buildozer 工具打包应用的过程中没有问题。

【问题讨论】:

  • 您是否在您的App 上实现了on_pause 方法? Kivy 使用该方法来确定您的应用程序是否能够暂停。如果您的应用程序的 on_pause 方法没有返回 True,那么 Kivy 会在请求暂停时终止您的应用程序。
  • 我是 kivy 的新手,我不知道 on_pause 方法。我应该在哪里以及如何使用?
  • 像下面@inclement 的回答一样实现它。您还应该通过单击答案左侧的复选框来接受该答案。

标签: android python locking screen kivy


【解决方案1】:

您需要为您的应用实现on_pause 方法,如documentation 中所述。

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

请注意,您永远无法保证您的应用程序状态会被保留 - android 可能会在它处于暂停状态时将其杀死而不会发出警告。确保在 on_pause 方法中保存所需的任何数据。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多