我有一个奇怪的问题,希望你们中的某个人知道这里发生了什么。
我的应用程序结构如下:
- 我有一个主要服务,它注册一个广播接收器并监听屏幕开/关等意图。所以这个服务无限期地运行。
- 当收到这样的意图时,我会启动另一个执行该操作的服务
- 在此操作服务中,我启动了一个 AsyncTask 以通过反射获取与电池相关的统计信息。服务完成后,它调用 stopSelf()。
所以一切都按预期工作,除了一次获取电池相关信息时,AsyncTask/Reflection 方法的每次后续调用都会提供与之前提供的完全相同的结果。
与此同时,电池统计数据当然已经更新,但我没有得到新的更新数字,但总是来自第一个方法调用的统计数据。
直到我进入设置并强制停止并重新启动我的应用程序,然后我再次获得更新的电池统计信息,至少一次,因为在那之后我再次陷入这些数字。
所以我的问题是:反射调用的结果是否会自动缓存在某个地方,并且每个后续调用并没有真正获取新数据,而只是提供一些缓存的结果?还有什么问题?
我很感谢任何想法,我需要一些代码让我知道:)