Autore Topic: memory leak causato da API YouTube  (Letto 1154 volte)

Offline andios

  • Nuovo arrivato
  • *
  • Post: 1
  • Respect: 0
    • Mostra profilo
memory leak causato da API YouTube
« il: 25 Novembre 2014, 19:30:28 CET »
0
Ciao a tutti,
Usando le API YouTube per Android, e avendo controllato la gestione della memoria con Eclipse Memory Analizer, mi sono accorto che se faccio avanti e indietro fra due activity la seconda non viene rimossa dalla memoria nonostante ne venga richiamato il metodo onDestroy.
Quindi se ad esempio vado avanti e indietro 30 volte, mi ritrovo in memoria 30 istanze della seconda activity con un elevato spreco di memoria.
Con qualche test mi sono accorto che l'istruzione che impedisce al Garbage collector di eliminare l'activity è l'inizializzazione del fragment. Di seguito il codice:
Codice (Java): [Seleziona]
YouTubePlayerFragment ytpf =(YouTubePlayerFragment) getFragmentManager().findFragmentById(R.id.youtube_fragment);
ytpf.initialize(DEVELOPER_KEY,this);
Ho provato a richiamare release() sull'oggetto YouTubePlayer (che viene instanziato durante l'inizializzazione del fragment), ma il leak rimane.

Se può essere d'aiuto pubblico questo log che credo sia legato al problema:
Codice (Java): [Seleziona]
W/ContextImpl(23603): Implicit intents with startService are not safe: Intent { act=com.google.android.youtube.api.service.START } android.content.ContextWrapper.bindService:529 com.google.android.youtube.player.internal.r.e:-1 com.google.android.youtube.player.YouTubePlayerView.a:-1
Come faccio a rimuovere il riferimento che impedisce alla seconda activity di essere eliminata dal Garbage Collector?
« Ultima modifica: 25 Novembre 2014, 19:34:46 CET da andios »