【问题标题】:Android Swarm Leaderboard unexpected behavioursAndroid Swarm 排行榜意外行为
【发布时间】:2023-04-30 17:33:01
【问题描述】:

所以,我最终决定在我的游戏中使用 Swarm 排行榜。

设置很简单,但似乎给应用程序带来了一些意外行为。

如果有人可以阐明它会有所帮助:

  1. 应用程序始终在后台运行。即使在最终 UI 活动结束后。当然,Swarm 保留了一些线程来阻止它关闭。任何想法,我如何可以完全关闭我的应用程序,而不是让用户使用后台应用程序。

  2. 他们在单独的 PID 空间中生成服务,是否有必要。如果我对其进行修改并使其在一个 PID 中进行维护会怎样

  3. SDK 有时会显示登录仪表板,而我更喜欢我的用户以访客身份玩游戏,因此不调用 showDashboard。为什么它仍然被调用?任何防止它的方法。或者,如果要显示它 - 那么我可以与之关联的任何回调,以便 UI 的其余部分更加交错,而不是突然弹出

【问题讨论】:

    标签: android leaderboard


    【解决方案1】:

    这里是 Swarm 的首席开发人员。首先,很高兴你在试用 Swarm,希望我们能解决这个问题 :)

    1) 这听起来像是 Android 的默认行为。应用程序一直显式运行(代码在内存中,而不是在 CPU 上活跃),直到需要内存,此时它们被驱逐。如果您看到的不止这些,您可能在其中一项活动中错过了对 Swarm.setInactive() 的调用。我们使用 setActive() 和 setInactive() 作为挂钩来了解您的游戏何时运行,以及何时我们应该关闭我们这边的所有东西。

    2) 这是可配置的。在清单中应该有一行写着 android:process=":swarm"。删除此行,它将在与您的应用程序相同的进程中运行。 Swarm 的功能之一是推送通知,如果使用此功能,在单独的进程中运行非常有价值,因为它不需要所有应用程序代码一直运行(节省设备内存)。

    3) 您绝对不需要显示仪表板。唯一需要显示的屏幕是登录屏幕(就像您提到的那样,他们可以单击“以访客身份播放”以快速通过)。所有这些都由调用 Swarm.init() 的方式控制,并为完整的登录过程提供回调(loginStarted()、loginCanceled()、userLoggedIn() 和 userLoggedOut())。请参阅我们的文档了解更多信息。

    【讨论】: