2011-12-03 9 views
5

Stworzyłem Live Wallpaper, która wyświetla animację, przechowując 70 lub więcej obrazów w tablicy, a następnie wyświetla je w jednym momencie, aby utworzyć animację. Użyłem konstrukcji CubeEngine do jej zaprojektowania. W większości działa.Live Wallpaper - "Ustaw tapetę" - Potrzebujesz zdarzenia do wyczyszczenia pamięci

Po pierwszym wybraniu tapety ładuje ona tablicę i wyświetla animację. Następnie, po kliknięciu przycisku "Ustaw tapetę", pojawia się "OutOfMemoryError: rozmiar bitmapy przekracza budżet VM". Dodałem wywołania bitmap.recycle(), aby spróbować rozwiązać ten problem.

Umieściłem Log.d we wszystkich zdarzeniach, aby spróbować zrozumieć przebieg wydarzeń. Wygląda na to, że po naciśnięciu przycisku "Ustaw tapetę" przepływ przechodzi prosto do Konstruktora.

Zdarzenie onDestroy lub zdarzenia onSurfaceChanged nie są wywoływane ani żadne inne zdarzenie, z wyjątkiem onTouchEvent.

Tak więc moja oryginalna tablica obrazów jest w pamięci, a kiedy wykonuje Konstruktor, próbuje załadować inną tablicę z obrazami i skończy się jej pamięć.

Nie mogę znaleźć wydarzenia, w którym można umieścić logikę, aby wyczyścić moją oryginalną tablicę po kliknięciu przycisku "Ustaw tapetę".

Czy istnieje sposób na dodanie logiki do przycisku "Ustaw tapetę" lub czy jest jeszcze jedno zdarzenie, które mogę dodać do kodu, w którym powinienem być w stanie to zrobić?

Widziałem, jak inni mają ten problem, ale nie widziałem rozwiązania.

Wszelkie sugestie zostaną docenione.

Odpowiedz

0

Jeśli chcesz wykonać ładowanie lub wyładowanie, możesz wykryć, kiedy widoczność zmiany WallpaperService.Engine zmienia się przez nadpisanie onVisibilityChanged (boolean visible).
Powinieneś również wznowić lub wstrzymać GlSurfaceView, gdy zmieni się widoczność.

można znaleźć więcej informacji tutaj:
http://developer.android.com/reference/android/service/wallpaper/WallpaperService.Engine.html#onVisibilityChanged(boolean)
http://developer.android.com/reference/android/opengl/GLSurfaceView.html
zobaczyć cykl życiowy aktywny

Powiązane problemy