我已经阅读了几篇有关单身人士类破坏的帖子,或者像this和this这样的bitget
但我无法理解如何正确地声明单例类或使用共享首选项来持久化任何人都可以提供有关如何跨应用程序维护全局对象的任何示例,或者如何以正确的方式实现此任何帮助。/ p>
答案 0 :(得分:0)
我认为你提到的this链接非常好。根据我的个人经验,在应用程序中维护全局对象的最佳方法是使用从Application类扩展的类,然后你可以通过setter管理对象这个类中的getter方法。这在技术上像android中的Singleton一样工作,除了大部分的内务处理都是由android完成的,所以使用这个机制而不是单例是非常明智的。
另一方面, do {
try AVAudioSession.sharedInstance().overrideOutputAudioPort(AVAudioSessionPortOverride.Speaker)
} catch _ {
}
具有完全不同的工作,主要用于存储一些用户数据和行为
答案 1 :(得分:0)
要在进程终止之间保存数据,您必须以任何形式使用序列化。
最简单的方法是使用sharedpreferences + gson。
Singleton没有帮助,因为擦除了该进程的所有数据,OS有一个处理程序在“低内存”情况下保存状态,但它仍然使用序列化(bundle)。
您可以使用带有共享首选项的单例,数据客户端(活动)必须通知有关销毁,因此单例可以转储数据。在开始时,singleton将再次加载数据。
但要注意可能存在的不稳定性 - 如果应用程序崩溃会怎么样?
在一个应用程序中,多个进程的事情变得棘手。