在 android 期间在 Kivy 进行多项活动

Having multiple activities in Kivy for android

如您所知,Android 中的活动之间的切换是通过实例化 Intent 并启动它来完成的。像

Intent i = new Intent(ThisActivity.this, AnotherActivity.class);
startActivity(i);

当 Intent 启动时,这从 ThisActivity 变为 AnotherActivity。 如果您在 AnotherActivity,按下 android 设备的 'Back' 按钮 returns,您将回到之前的 Activity(ThisActivity)。如何在 Kivy 中实现这种行为?

我使用 ScreenScreenManager 在不同页面之间显示和导航,但按 'Back' 按钮退出应用程序。正如我在尝试从 kivy 应用程序制作 apk 时在 buildozer 日志中观察到的那样,

Starting: Intent { act=org.renpy.android.PythonActivity cmp=org.test.community/org.renpy.android.PythonActivity }

似乎只创建了一个名为 PythonActivity 的 Activity。是否可以在 Kivy 中创建多个活动或具有类似的 android Activity 导航体验?

我们在 pyjnius 的帮助下完成了这项工作。以下代码说明了地图意图并回答了您的查询。

from jnius import cast
from jnius import autoclass

# import the needed Java class
PythonActivity = autoclass('org.kivy.android.PythonActivity')
Intent = autoclass('android.content.Intent')
Uri = autoclass('android.net.Uri')

# create the intent
mapintent = Intent()
mapintent.setAction(Intent.ACTION_VIEW)
msg = "Delhi"
mapintent.setData(Uri.parse("geo:0,0?q="+msg))
currentActivity = cast('android.app.Activity', PythonActivity.mActivity)
currentActivity.startActivity(mapintent)

您会找到更多示例here