Жизненный цикл BroadcastReceiver - статические переменные - PullRequest
7 голосов
/ 10 июня 2011

У меня есть класс BroadcastReceiver. У меня есть объявленные статические переменные, значение которых обновляется в методе onReceive (). Насколько мне известно, статическая переменная будет сохранять свое значение при вызовах onReceive. Есть ли какая-либо возможность, когда я потеряю эти значения (например, мой класс будет выгружен при сбросе статических переменных)? Это в основном некоторые временные переменные, которые мне нужны для нескольких вызовов onReceive.

Ответы [ 2 ]

5 голосов
/ 10 июня 2011

Из документации на BroadcastReceiver Lifecycle ...

Объект BroadcastReceiver действителен только на время вызова onReceive (Context, Intent). Как только ваш код возвращается из этой функции, система считает, что объект завершен и больше не активен.

Это не сделает практическим использование статических переменных в том смысле, что система быстро очистит их. Я бы попробовал использовать SharedPreferences, позвонив ...

context.getSharedPreferences("MyReceiver", MODE_PRIVATE)

... в методе onReceive(...) получателя (замените "MyReceiver" именем, которое имеет смысл для вашего приложения).

1 голос
/ 10 июня 2011

Или, конечно, вы можете объявить статические переменные в вашем классе активности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...