Пожалуйста, посмотрите на код ниже:Обработчики и утечки памяти в Android
public class MyGridFragment extends Fragment{
Handler myhandler = new Handler() {
@Override
public void handleMessage(Message message) {
switch (message.what) {
case 2: {
ArrayList<HashMap<String,String>> theurls = (ArrayList<HashMap<String,String>>) message.obj;
urls.addAll(theurls);
theimageAdapter.notifyDataSetChanged();
dismissBusyDialog();
break;
}}}};
}
Когда я использую обработчик, как это я получаю предупреждение «обработчик должен быть статическим, иначе она склонна к утечкам памяти.» Может ли кто-нибудь сказать мне, что это лучший способ сделать это?
Я не уверен, что вы правильно пользуетесь. Посмотрите на это руководство: http://www.vogella.com/articles/AndroidPerformance/article.html. Его не объявляется как статический в примере кода. :/ –
Ну, даже используя его, это дает мне ту же ошибку. Это никогда не случалось раньше, пока я не обновил свой Android-sdk прошлой ночью. Просто объявление обработчика как переменной класса всплывает это предупреждение lint now – Rasmus
Ну как насчет простого объявления вашего статичного обработчика? –