Kivy 简明教程

Kivy - App Life Cycle

一个 Kivy 应用程序从执行到停止会经历各个阶段。下图显示了不同阶段 −

kivy app life cycle

现在,让我们详细讨论每个阶段 −

Initialize UI

Kivy 框架中的 App 类是表示 Kivy 应用程序的那一个类。创建 App 对象是应用程序生命周期中的第一步。

from kivy.app import App

声明 App 类的子类,并覆盖 build() 方法。

from kivy.app import App

class MyApp(App):
   def build(self):
      #UI Design

它通过调用 build() 方法或在 ".kv" 文件的帮助下构建应用程序的 UI。如果需要,则从相应的 ".ini" 文件加载应用程序的配置。

Event Loop

一旦载入用户界面,App 对象进入一个无限事件循环。

if __name__ == '__main__':
   MyApp().run()

现在,界面中组装的各种小部件吸收用户交互(例如按钮单击或文本输入),并根据相应事件处理程序做出响应。响应用户交互,任何小部件或应用程序的状态可能会被修改。

要运行应用程序,请从操作系统终端执行以下命令 −

Python MyApp.py

虽然你可以通过这种方式在 Windows 或 Linux 上运行你的 Kivy 应用程序,但你可能需要采取一些其他步骤才能在 Android 上运行它。对于 Android,你应该构建一个 APK(Android 软件包套件)。

你应该使用 Buildozer ,它是一个可以自动化整个构建过程的工具。它安装了 python-for-android 的所有前提条件,包括 Android SDK 和 NDK,然后构建一个可以自动推送到设备上的 APK。Buildozer 目前仅适用于 Linux 和 macOS(对于 Windows,在机器上激活 WSL,然后从 WSL 中使用 Buildozer)

Pause / Resume

应用程序正在运行时,可以使其暂停。例如,如果应用程序窗口最小化,或者设备本身进入睡眠模式,则暂停模式有助于节省资源。

Kivy 有一个 on_pause() 事件处理程序。在请求暂停模式时调用它。如果你的应用程序可以进入暂停模式,则你应返回 True,否则返回 False,你的应用程序将停止。你无法控制应用程序何时进入此模式。它由操作系统决定,而且主要用于移动设备(Android/iOS)和调整大小。

应用程序可以从暂停的位置恢复运行。

当你的应用程序从暂停模式恢复时,会调用 Kivy 的 on_resume() 事件处理程序。

恢复时,OpenGL 上下文可能已损坏/释放。在这里,你可以重建一些 OpenGL 状态。

Stop

当用户通过调用应用程序代码中的适当方法关闭应用程序时,便是此阶段。所有清理操作都在应用程序运行终止之前执行。