2014-06-23 7 views
0

Je travaille avec beaucoup de bitmaps dans mon jeu pour Android et tout fonctionne très bien, mais quand je clique sur un bouton pour commencer une nouvelle activité, le jeu se fige pendant environ une demi-seconde. Ce n'est pas beaucoup, mais c'est agaçant. Dans la méthode onDestroy, je recycle tous les bitmaps, pour économiser de la mémoire et provoquer le blocage de l'application. Y a-t-il une solution plus intelligente pour cela?Android prenant trop de temps pour recycler bitmaps onDestroy

Répondre

1

Peut-être essayer de les recycler dans un AsyncTask quand OnDestroy est appelé

Quelque chose comme ça

@Override 
protected void onDestroy() { 
    super.onDestroy(); 
    new AsyncTask<Bitmap[],Void,Void>() { 

     @Override 
     protected Void doInBackground(Bitmap[]... params) { 
      for (Bitmap b : params[0]) { 
       b.recycle(); 
      } 
      return null; 
     } 
    }.execute(bitmaps); 
} 
+0

Pouvez-vous me donner plus de détails à ce sujet? – user3330053

+0

Le 'AsyncTask' peut s'exécuter en arrière-plan même après que le' Activity' à partir duquel il a été appelé est détruit. Parce que 'AsyncTask' fonctionne en arrière-plan,' onDestroy() 'ne bloquera pas et la nouvelle' Activity' sera lancée beaucoup plus rapidement. – BVB

+0

@ user3330053 a travaillé pour vous? – hoomi

Questions connexes