使用服务的目的是为了确保Singleton类始终保留在内存中以便后续调用应用程序,这将是非常糟糕的设计.它根本不是服务的用途.请参阅:http://www.androidguys.com/2009/09/09/diamonds-are-forever-services-are-not/.
如果您希望确保在下次创建应用程序时保留大量数据,那么您应该选择适当的方法来保存该数据.例如,这可能是通过使用SharedPreferences或SQL或缓存等,具体取决于您要保留的数据类型.然后,设计所有Activity类以正确处理当所有Singleton数据未处于初始化状态时它们被恢复的场景.
我个人维护着一个复杂的科学应用程序,它依赖于在RAM中保存了大量的单例数据.我在开发的早期阶段遇到的一个重要问题是,可能发生以下情况:
Service当用户与其他应用程序交互时,您的应用程序的Application类将被销毁并创建(可能已多次)以及它使用的任何类.为了应对上述情况,我所做的关键是确保所有活动不仅仅假设活动启动时全局(Singleton)数据存在且完好无损.我的应用程序中依赖于全局Singleton数据的每个Activity都首先检查该数据,如果它没有初始化,则调用我的Application类中的方法来触发该数据的重新生成(在我的例子中,涉及从文件中检索该数据) SD卡).
简而言之,在Android中处理全局/单一数据需要一些关心和思考.您不能强制系统无限期地避免杀死您的应用程序,因此也不能杀死所有Singleton数据.因此,我学到的关键事项是持久化并检索数据,并设计Activity类以正确处理在创建Activity时未发现Singleton数据已初始化的情况.
| 归档时间: |
|
| 查看次数: |
789 次 |
| 最近记录: |