2012-01-02 9 views
6

Aggiungo uno ViewFlipper gonfiato da una risorsa di layout a ListView come Footer. Ecco il mio layout flipper (Dettagli omesso per brevità):Attività interrotta IntentReceiver android.widget.ViewFlipper

<?xml version="1.0" encoding="utf-8"?> 
<ViewFlipper ...> 
    <Button 
     /> 
    <LinearLayout 
     ... > 
     <ProgressBar 
      ... /> 
     <TextView 
      ... /> 
    </LinearLayout> 
</ViewFlipper> 

lo aggiungo alla mia ListView utilizzando:

mListView.addFooterView(mLoadMoreFlipper); 

Quando la mia attività è distrutto vedo il seguente messaggio, seguito da uno stack di chiamate, in LogCat:

Activity com.gk.ItemListActivity has leaked IntentReceiver [email protected] 
that was originally registered here. Are you missing a call to unregisterReceiver()? 

ho fatto un po 'scavare intorno e ha scoperto il messaggio è legato alla non l'annullamento della registrazione ricevitori, tranne che non ho registrato alcuna. Stranamente questo messaggio appare solo se il footer ViewFlipper è stato rimosso dallo ListView prima della distruzione (usando il pulsante Indietro). Stacco il piè di pagina in cui ho più bisogno esso utilizzando:

mListView.removeFooterView(mLoadMoreFlipper); 

Ho provato con un WeakReference al ViewFlipper, ma questo non aiuta. Ho anche provato a impostare il riferimento mLoadMoreFlipper su null ma questo non aiuta neanche.

Qualcuno ha riscontrato questo problema prima? Questo sembra essere correlato alla mia attività in possesso di un riferimento allo ViewFlipper dopo che è stato staccato dal ListView ma non so come distruggere esplicitamente lo ViewFlipper.

+0

Non vedo nulla che necessariamente causerebbe questo con il codice qui. Registrate altri callback o listener che hanno qualcosa a che fare con il contenuto del footer? –

risposta

Problemi correlati