Détecter point de vue sur l'Adaptateur a été détruit

J'ai une ListView avec un BaseAdapter. Je veux mettre à jour certains éléments de la liste très souvent sans actualiser le contenu. Afin d'atteindre ce que je suis en utilisant le pattern observer. J'ai un objet observé et chaque élément de la liste est un observateur.

    public View getView(final int position, View convertView, final ViewGroup parent) {
        final ItemViewHolder holder;
        final Item item = (Item) getItem(position);
        if (convertView == null) {
            convertView = inflater.inflate(R.layout.item, parent, false);

            /* ADD VIEWS TO HOLDER */

            holder = new ItemViewHolder();

            convertView.setTag(holder);

            ItemObserver observer = new ItemObserver(holder, context);
            mapObservers.put(holder, observer);
            observable.addObserver(observer);
        } else {
            holder = (ItemViewHolder) convertView.getTag();
        }
        //Set values into view etc...
        return convertView;
    }

Cela fonctionne bien, mais la question est: comment savoir si l'observateur n'est plus nécessaire?. Je veux détecter quand une vue est détruite afin d'obtenir l'observateur de la Carte et de la supprimer de l'objet observé. Est-il un auditeur qui est appelé lorsque la vue est détruite?

J'ai essayé AbsListView.RecyclerListener.onMovedToScrapHeap(View view), mais il semble être appelé lorsque la Vue est recyclé.

Merci!

OriginalL'auteur ivacf | 2013-03-07