Быстрый сборщик мусора на Java - PullRequest
4 голосов
/ 06 августа 2011

Я пишу приложение для будильника в Android, и у меня есть следующее:

ArrayList<PendingIntent> pendingIntents = new ArrayList<PendingIntent>();

public PendingIntent setAlarm(long time) {
    ...other code.
    PendingIntent pi = PendingIntent.getBroadcast(context, num, intent, flags);
    return pi;
}

Мне интересно, если делать это ниже несколько раз, переопределяется ли исходная ссылка Pending Intent каждый раз?

pendingIntents.add(num, setAlarm(1000));

Ответы [ 2 ]

2 голосов
/ 06 августа 2011

Нет, это не так.

Каждый раз, когда вы вызываете add, вы вставляете элемент после указанного индекса.

Возможно, вы намеревались использовать set.Этот элемент заменяет элемент в позиции num, и старое значение становится правомочным для GC.

2 голосов
/ 06 августа 2011

NO

Обычно вы временно присваиваете объекту ссылку на переменную pi.Переменная перезаписывается, а объект - нет.Он безопасно добавляется в ваш список для любого использования в будущем.

...