2

我希望这个问题符合该网站的标准。否则我会很乐意更新。

像许多其他人一样,我正在使用 PhoneGap(在本例中为 Cordova 3)框架为多个平台开发应用程序,并希望在使用执行其他任务时保持我的应用程序处于活动状态。我已经阅读了这个主题,似乎有很多意见和可能/部分解决方案。

从概念上讲,我想要做的是允许用户返回应用程序,如果他们按下回,回家,他们接到电话,他们玩俄罗斯方块或其他什么,特别是如果应用程序希望他们在某些条件下返回。

我目前正在通过专注于 Android 平台来解决这个问题,并将在解决此问题后进行扩展。我了解 Android OS 将杀死不可见的进程的机制,并且理解并实现了示例后台服务。

我为我的应用程序使用带有可折叠内容的 JQuery Mobile。

在我继续开发之前,我想确保我走在正确的道路上。

我已经成功实现了暂停/恢复来处理手机锁定和睡眠。我的应用程序不会死机,我可以通过适当的插件让它发出哔哔声和振动。

我继续的意图是这个......

编写一个后台服务来执行定期“检查”,在这种情况下,手机相对于已知位置的位置。目的是在用户达到一定的接近度时通知用户。这将在“暂停”事件上启动并在“恢复”或应用程序重新启动时停止。

使用本地存储,维护 UI 的状态记录,以便它可以在正确的状态下重新启动。重新启动后,存储的状态将恢复,应用程序看起来从未消失过。应用程序中没有任何东西会持续更新,例如图形或日志,因此没有理由从后台服务中检索“过去状态”并执行这些状态的呈现,就好像它们已由应用程序执行一样,但这不会如果将来需要这样做,似乎不合理。

由于应用程序可能不会运行,服务似乎有必要创建一个(“发生了重要事情”)通知,用户可以单击该通知以重新启动应用程序。我找到了几个状态栏通知插件并打算使用一个。我相信我将能够从后台服务发出相应的哔哔声/振动。

此外,“事情正在发生”连续通知可用于重新启动应用程序。我认为与上述没有冲突。找到一个“将应用程序带到前台是否正在运行”的方法会很好,但我不抱任何希望。

我的基本问题是这个......

在实现解决方案的 iOS 方面时,我是否正确地解决了这个问题并尽可能多地保持跨平台工作,而不是让自己陷入困境?

我只是不想错过一个我没有在看似常见问题的答案海洋中找到的技巧。

4

0 回答 0