我有一个BroadcastReceiver类。我声明了一些静态变量,其值在onReceive()方法中更新。根据我的知识,静态变量将保持它在onReceive调用中的值。有没有可能我会松开这些值(就像我的类将被卸载重置静态变量)?这些基本上是我需要为多个onReceive调用提供的一些临时变量。
答案 0 :(得分:5)
来自BroadcastReceiver Lifecycle ...
的文档BroadcastReceiver对象仅在对onReceive(Context,Intent)的调用期间有效。一旦您的代码从此函数返回,系统会认为该对象已完成且不再有效。
这不会使静态变量的使用变得切实可行,因为系统会很快清理掉事物。我试着通过调用... {/ p>来尝试使用SharedPreferences
context.getSharedPreferences("MyReceiver", MODE_PRIVATE)
...在接收者的onReceive(...)
方法中(将[{1}}替换为某个对您的应用有意义的名称)。
答案 1 :(得分:1)
或者您当然可以在活动类中声明静态变量。