在我的应用程序中,我使用dagger注入了一些单例管理器对象。
假设其中一个管理器,比如myManager,将数据保存在列表中,比如myList。 另外我有一个BroadcastReceiver类,比如myBroadcastReceiver,当它收到一些特定的意图时,它会调用myManager方法之一,例如myMethod。
如果我打开我的应用程序并等到myList初始化,然后按home,之后myBroadcastReceiver收到intent并调用myMethod,myList为null(尽管myManager本身不为null)。
我无法确定这是否是Android的自然行为问题,或者我是否确实犯过这样的错误。
答案 0 :(得分:0)
我认为你的单例类是由于内存不足而需要在onSaveInstanceState(Bundle outState)中保存该列表并在onCreate方法中检索相同内容
答案 1 :(得分:0)
您可以实施"保存状态"解决方案使用android在您的活动或服务中提供的onSaveIntanceState功能或您正在使用的任何组件
或者您可以将数据本地保存在文件中,甚至可以更好地保存在sqlite数据库中,这可以非常简单直接地实现。
将你的清单和#34;留在记忆中"与本地存储同步,您永远不会丢失任何数据。
只需使用延迟加载,每次列表为空时,从本地存储中获取数据。