最光滑的方式在单身人士中使用广播员等等
-
03-10-2019 - |
题
我有一个Singleton,可以存储有关我应用程序用户的一些审慎信息。目前,它存储用户的登录名和用户的位置。
1)该位置是通过服务找到的。目前,该服务将我的单身人士直接引用将经度和纬度塞入其中。我想使用Broadcastreceiver发送Singleton听到并用来更新值的广播。
但是,要注册Broadcastreceiver,我需要单身人士中的上下文。什么是实现我想要的最光滑的方法。 Broadcastreceiver可能不是适当的对象吗?
2)另外,我在使用单身人士时要考虑什么问题?我认为Android可能会在任何给定时间回收此记忆(这显然很糟糕);那我该如何防止呢?通过应用程序的上下文传递并将其存储在成员变量中吗?
Android文档指出:“但是,静态的生命周期在您的控制之下不太好;因此,要遵守生命周期模型,应用程序类应启动和拆除onCreate()和Onterminate中的这些静态对象( )应用程序类的方法:“但是我不确定如何实现这一目标。
解决方案
但是,要注册Broadcastreceiver,我需要单身人士中的上下文。什么是实现我想要的最光滑的方法。 Broadcastreceiver可能不是适当的>对象吗?
“最光滑的方式”是不做您在做的事情。请仅注册 BroadcastReceiver
从一个 Activity
, Service
, , 或者 也许 一个 Application
. 。你 必须 取消登记 BroadcastReceiver
当。。。的时候 Activity
, Service
, , 或者 Application
被摧毁。
我认为Android可能会在任何给定时间回收此记忆(这显然很糟糕);那我该如何防止呢?
你没有。 Android保留随时终止过程的权利(例如,回收内存)。 Android 2.1和以前的任务杀手将随时终止您的流程。一旦应用程序的所有组件都被销毁,Android就可以随时回收您的流程,同时清理堆。等等。
只将事情放在您不介意输掉的记忆中。
最好将您的“应用程序”视为一篮子松散耦合的组件,而不是整体上的实体。
通过应用程序的上下文传递并将其存储在成员变量中吗?
不。
Android文档指出:“但是,静态的生命周期在您的控制之下不太好;因此,要遵守生命周期模型,应用程序类应启动和拆除onCreate()和Onterminate中的这些静态对象( )应用程序类的方法:“但是我不确定如何实现这一目标。
创建一个子类 Application
并在清单中指出,Android应该通过 android:name
属性 <application>
元素。