目前我正在开发Android Hybrid应用程序。我对Android开发很陌生,但每天都在捡新东西。这个混合应用程序是基于Sencha Touch 2.3.1框架构建的。该项目包括以下主要目标。
一般问题:在架构/基础结构方面,最好的方法是什么?
为了更具体地说明我想得到的答案,这里有更多信息。
目前,应用程序的本机部分(Activity)看起来有点像这样。它声明并初始化WebView并加载指向托管Sencha Touch应用程序的主机的URL。到目前为止,这是我唯一的活动/课程。并且也正常工作。
我正在使用以下bridge来在应用程序的混合和本机部分之间来回通信。在 GitHub 的示例中,他们将所有功能填充到一个Java类中。 (活动)
在我的情况下,这对我的项目意味着,所有Hybrid to Native函数调用,如获取当前GPS状态,在后台设置计时器或启动摄像头将驻留在主Activity中。因此,我可以想象得到相当大的时间。
子问题:这是要走的路,还是应该将所有核心功能拆分为不同的类?
GPS传感器需要相当长的时间来进行修复,因此在GPS不断搜索当前坐标时不应中断用户。 (如果需要和可用,这可以通过2G / 3G或WiFi支持)
子问题:这个或任何其他后台功能应该在一个单独的线程中处理吗?或者在WebView所在的同一个Activity中?或者我可以在Activity中创建一个新线程来处理GPS和/或需要在后台运行的其他功能吗?
正如您所看到的,我正在尝试找出在Native端构建应用程序的最佳方法。
对于线程部分(在后台运行的功能,例如等待正确坐标的计时器或GPS)我想使用IntentService,因为该功能必须继续运行完成任务,即使应用程序未处于活动状态/最小化状态。此外,必须再次处理相同的任务。 (重用线程?)所以当我在这个问题中谈到线程或线程时,我的意思是使用IntentServices。
我希望我足够清楚。感谢您的阅读。
(Pseudo)编码答案很受欢迎,但是向我展示最佳/正确的结构(图像或“仅仅是单词”)将是首选。然后,再按照你的喜好做。