Autore Topic: surfaceview black screen (resume)  (Letto 625 volte)

Offline Giak

  • Utente junior
  • **
  • Post: 52
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    transformer tf101
  • Sistema operativo:
    ubuntu 12.10
surfaceview black screen (resume)
« il: 01 Agosto 2013, 11:37:01 CEST »
0
ho un problema con il ciclo di vita della mia surfaceview.

questi sono i rispettivi metodi di resume e pause, chiamati nell onPause() e onResume() dell'activity che contiene la surfaceview.

Codice (Java): [Seleziona]
/*start drawing*/
            public void onResumeMySurfaceView(){
                /*inizio drawing*/             
                running = true;
                drawthread = new Thread(this);
                drawthread.start();
            }
           
            /*stop drawing*/
            public void onPauseMySurfaceView(){
                boolean retry = true;
                running = false;
                while(retry){
                        try {
                                /*terminazione thread di drawing*/
                                drawthread.join();
                                retry = false;
                        } catch (InterruptedException e) {
                                e.printStackTrace();
                        }
                }
            }

il problema è che quando premo HOME e successivamente rientro nell'applicazione trovo lo schermo completamente nero. la musica e il banner pubblicitario ci sono quindi il problema dovrebbe essere strettamente legato alla surfaceview.
il drawthread termina correttamente in quanto la join() ritorna immediatamente e ottengo i log che mi aspetto.

Post unito: 01 Agosto 2013, 14:27:12 CEST
il problema non era nella surfaceview ma nel thread addetto al drawing, questo thread infatti disegnava la UI solo in seguito ad un evento di touch o alla prima iterazione.
settando a true un apposito flag ho risolto.
« Ultima modifica: 01 Agosto 2013, 14:27:12 CEST da Giak, Reason: Merged DoublePost »