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 に答える