9

我有一个 BroadcastReceiver 类。我声明了一些静态变量,其值在 onReceive() 方法中更新。据我所知,静态变量将在 onReceive 调用中保持其值。当我失去这些值时是否有可能(比如我的类将被卸载并重置静态变量)?这些基本上是我需要用于多个 onReceive 调用的一些临时变量。

4

2 回答 2

6

BroadcastReceiver Lifecycle的文档...

BroadcastReceiver 对象仅在调用 onReceive(Context, Intent) 期间有效。一旦您的代码从此函数返回,系统就会认为该对象已完成且不再处于活动状态。

这不会使静态变量的使用变得实用,因为系统会快速清理事物。我会尝试SharedPreferences通过调用...

context.getSharedPreferences("MyReceiver", MODE_PRIVATE)

...在接收者的onReceive(...)方法中(替换"MyReceiver"为对您的应用有意义的名称)。

于 2011-06-09T22:03:40.003 回答
1

或者您当然可以在活动类中声明静态变量。

于 2011-06-09T22:33:46.320 回答