Как изящно закрыть приложение на Android?

У меня есть приложение с этим внутри:

Button:
    text: "Close"
    on_release: app.stop()

Это хорошо работает. Но, к сожалению, когда приложение выполняется на Android, оно останавливается, но не изящно, так как открывается диалоговое окно Android, сообщающее, что приложение было закрыто. И это не ожидаемое поведение нормального окончания.

Итак, мой вопрос: как изящно закрыть приложение на Android, чтобы не видеть это надоедливое диалоговое окно?

Ниже приведен вывод logcat:

I/python  ( 4960): ANSWERS (on_stop in App) =  None
I/python  ( 4960): screen names =  ['welcome']
I/python  ( 4960): answers have been saved on disk
I/python  ( 4960): closing the SQL connection...
I/python  ( 4960): now returning True
I/python  ( 4960): [INFO   ] [Base        ] Leaving application in progress...
I/python  ( 4960): ANSWERS (on_stop in App) =  None
I/python  ( 4960): screen names =  ['welcome']
I/python  ( 4960): answers have been saved on disk
I/python  ( 4960): closing the SQL connection...
I/python  ( 4960): now returning True
I/python  ( 4960): Python for android ended.

Как видите, метод App.on_stop(), по-видимому, был вызван дважды.

Спасибо за ваши идеи.

1 ответ

Вы переопределены on_stop() метод вашего приложения? Попробуй это.

from kivy.uix.boxlayout import BoxLayout
from kivy.lang import Builder
from kivy.app import App


Builder.load_string("""
<MyWidget>:
    BoxLayout:
        Button:
            text: "Close"
            on_release: app.stop()
""")


class MyWidget(BoxLayout):
    pass


class MyApp(App):
    def build(self):
        return MyWidget()

    def on_stop(self):
        return True

if __name__ == '__main__':
    MyApp().run()
Другие вопросы по тегам