【问题标题】:How to create background location service in Appcelerator Titanium working after restarting device重启设备后如何在 Appcelerator Titanium 中创建后台定位服务
【发布时间】:2016-09-20 13:40:57
【问题描述】:

我想制作一个应用程序,它将每 30 分钟向服务器发送一次有关用户位置的信息。需要提供特定位置的推送通知。

我需要适用于 Android/iOS 的此类功能,它可以在后台运行(即使设备重新启动)。我找到了一些关于后台服务的文章,我为此创建了后台服务,但是重启手机后它就不起作用了。

Android 和 iOS 可以吗?我怎样才能做到这一点?

【问题讨论】:

    标签: titanium appcelerator titanium-mobile appcelerator-titanium appcelerator-mobile


    【解决方案1】:

    对于 iOS,没有。使用 Android,是的。

    Apple 竭尽全力限制应用的功能。您可以在后台长时间执行某些操作(GPS、播放音频、Voip 等),但在重新启动后,您的应用程序将不会重新启动,直到用户再次打开它。这也有例外。重启后允许 Voip 应用程序重新启动,但苹果不会批准您的应用程序进入 App Store,除非您的应用程序中确实有一个用户可以使用 Voip 功能的位置。地理围栏是一种可能性,但我还没有使用该功能的经验。根据我的经验,Apple 会尽其所能确保您的应用不会永远运行。

    使用 android,灵活性更高,您的建议完全可以实现。我在下面列出了一些重要的链接,因为这些解决方案中的大多数都比我在这里可以做的要好得多。

    基本上你需要注册为一个启动接收器,然后在收到启动事件时发送一个启动钛安卓服务的意图。我没有启动钛服务的经验,但我敢肯定它是您需要启动的简单意图。无论哪种方式,您都需要一个用于此本机代码的模块。我附上了一个可能对您有所帮助的钛合金模块的链接,尽管可能还有其他一些模块。您甚至可能需要自己编写代码。

    三星因使用 SPCM 功能停止您的应用而臭名昭著。您可能想熟悉它。我在下面添加了一个 stackoverflow 讨论链接。

    我不知道您的所有系统要求,但老实说,对于任何应用程序,我都会尽我最大的努力不要永远运行。它会损害用户的电池寿命,并会增加很多复杂性。也许您可以简单地让应用程序在收到推送通知时检查 GPS 坐标,并在那里决定是否向用户显示通知?只是需要考虑的事情。

    祝你好运!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多