And*_*rew 2 singleton android broadcastreceiver application-lifecycle
我有一个单例,它存储了一些关于我的应用程序用户的谨慎信息.目前,它存储用户的登录信息和用户的位置.
1)该位置通过服务找到.目前,服务直接引用我的单身人士将经度和纬度填入其中.我想使用BroadcastReceiver来发送单例听到并用来更新值的广播.
但是,要注册BroadcastReceiver,我需要在我的单例中使用Context.什么是实现我想要的最简单的方法.BroadcastReceiver可能不是合适的对象吗?
2)另外,我使用单身人士时会遇到什么问题?我认为Android可能会在任何给定时间回收这个内存(这显然是坏事); 那我该怎么办呢?是否会传入应用程序的Context并将其存储在成员变量中?
Android文档指出:"但是,静态的生命周期并不在你的控制之下;因此要遵守生命周期模型,应用程序类应该启动并拆除onCreate()和onTerminate中的这些静态对象( )应用程序类的方法,"但我不完全确定如何实现这一点.
但是,要注册BroadcastReceiver,我需要在我的单例中使用Context.什么是实现我想要的最简单的方法.BroadcastReceiver可能不是合适的>对象吗?
"最简单的方法"是不做你正在做的事情.请只注册一个BroadcastReceiver从Activity,Service或可能的Application.在,或被销毁时,您必须取消注册.BroadcastReceiverActivityServiceApplication
我认为Android可能会在任何给定时间回收这个内存(这显然是坏事); 那我该怎么办呢?
你没有.Android保留随时终止您的流程的权利(例如,回收内存).Android 2.1和之前的任务杀手将随时终止您的进程.一旦您的应用程序的所有组件都被销毁,Android可以随时回收您的进程,同时清理您的堆.等等.
只把你不介意丢失的东西放在记忆中.
最好将您的"应用程序"视为一堆松散耦合的组件,而不是整体实体.
是否会传入应用程序的Context并将其存储在成员变量中?
没有.
Android文档指出:"但是,静态的生命周期并不在你的控制之下;因此要遵守生命周期模型,应用程序类应该启动并拆除onCreate()和onTerminate中的这些静态对象( )应用程序类的方法,"但我不完全确定如何实现这一点.
Application通过元素上的android:name属性创建一个子类,并在清单中指明Android应该使用它<application>.
| 归档时间: |
|
| 查看次数: |
3249 次 |
| 最近记录: |