2014-11-30 14 views
9

Ho problemi con le animazioni che rallentano su molti telefoni Android Samsung. Ho rintracciato il problema ed è troppa raccolta dei rifiuti. Tuttavia, nessuno degli oggetti viene creato direttamente dal mio codice.Come interrompere la creazione eccessiva di oggetti sui telefoni Samsung?

Questa è la traccia dello stack dal Tracker di allocazione in DDMS.

at com.samsung.android.multiwindow.MultiWindowStyle$1.createFromParcel(MultiWindowStyle.java:493) 
    at com.samsung.android.multiwindow.MultiWindowStyle$1.createFromParcel(MultiWindowStyle.java:491) 
    at com.samsung.android.multiwindow.IMultiWindowFacade$Stub$Proxy.getMultiWindowStyle(IMultiWindowFacade.java:499) 
    at com.samsung.android.multiwindow.MultiWindowFacade.getMultiWindowStyle(MultiWindowFacade.java:81) 
    at android.app.Activity.getMultiWindowStyle(Activity.java:4681) 
    at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1688)  
    at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1264) 
    at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6614)  
    at android.view.Choreographer$CallbackRecord.run(Choreographer.java:813) 
    at android.view.Choreographer.doCallbacks(Choreographer.java:613) 
    at android.view.Choreographer.doFrame(Choreographer.java:583) 
    at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:799) 
    at android.os.Handler.handleCallback(Handler.java:733)  
    at android.os.Handler.dispatchMessage(Handler.java:95)  
    at android.os.Looper.loop(Looper.java:146)  
    at android.app.ActivityThread.main(ActivityThread.java:5678) 

Questo sta creando migliaia di oggetti Punto e Punto quando l'utente tocca lo schermo.

Qualcuno sa di una soluzione?

Non ho come target i telefoni Samsung o l'utilizzo e dei relativi sdk o librerie.

+2

Sembra che il supporto Multi Window (Multitasking) di Samsung sia attivato. Forse puoi forzare la tua app a dire al dispositivo Samsung di disabilitare il supporto multi-window per la tua app. Non rispondere a me ... Non ho familiarità con la funzionalità Samsung Multi Window. vedi http://stackoverflow.com/questions/14111052/adding-multi-window-support-to-android-application – ecle

+1

@ theJosh, hai imparato qualcosa in più su questo problema? – Tenfour04

+0

@ Tenfour04 No, non sono più vicino. Samsung è la mia nemesi. – theJosh

risposta

0

Bene, c'è un modello di progettazione che entra in gioco e che usiamo per situazioni come questa. Non sono sicuro se questo ti aiuta se il codice client è sotto il tuo controllo, se lo è, piuttosto facendo i nuovi oggetti, usa lo stesso oggetto, con le proprietà dell'oggetto (per esempio Rect avrà coordinate x, y) memorizzato nel oggetto client in una matrice e chiamare il metodo draw sull'oggetto Rect, passando le coordinate dell'oggetto rect memorizzato nell'array nel client.

Problemi correlati