0

我有一个应用程序,我在其中创建了一个前台服务,以确保即使用户退出应用程序或应用程序被内存压力杀死,用户启动的上传也会继续。

服务和应用程序都使用单例来传递数据。我知道这不是最好的解决方案,所以请不要评论坏坏的单身人士,因为问题不在于这里,而在于以下:

当我关闭应用程序时,我的前台服务继续运行并且可以访问单例。是否存在由于内存压力而导致单例被垃圾收集的风险,或者在这种情况下使用单例是否存在任何其他与内存相关的风险?

4

3 回答 3

0
  1. 单身人士没有什么不好的。但与任何其他模式或方法一样,它可能会被不当使用。
  2. 由于内存压力或任何其他原因,系统可能会终止您的应用程序。但是您Service将稍后重新启动。
于 2015-03-17T03:03:15.053 回答
0
  1. 单例模式是系统中非常有用的模式,因为它是一种静态格式。只需要一个对象来协调整个系统的动作。您不必担心重复或您不小心创建了多个模块。
  2. 前台服务是一种服务,它被认为是用户主动意识到的(具有焦点),因此不是系统在内存不足时杀死的候选对象。骨架对象不会被杀死。
于 2015-03-17T03:26:09.093 回答
0

静态变量仅在应用程序被终止时被销毁。因此,它们不会在您的服务运行时随机消失。但是,如果您的整个服务重新启动,您必须考虑在重新启动时没有单例的可能性。

于 2015-03-17T04:03:50.650 回答