Sto cercando di capire quali thread dovrebbero fare cosa in Android.Fotocamera Android: discussioni? Quale dovrebbe fare cosa
L'unica cosa che ho trovato indicato nella documentazione ufficiale è che camera.open()
deve essere inserito in una propria discussione.
Che dire:
camera.startPreview()
camera.stopPreview()
camera.release()
Esso non precisa quale thread hanno bisogno . Devono essere eseguiti sul thread principale (thread ui)? O sono libero di scegliere?
Perché sto cercando di capirlo? camera.startPreview()
quando eseguito sul thread principale causa il jitter/lag della mia app per un breve periodo di tempo, questo influisce pesantemente sulla mia applicazione in quanto è inserita in un viewPager e non desidero che la fotocamera visualizzi sempre l'anteprima (il che causerebbe nessun ritardo, ma richiede risorse di sistema).
Qualche idea?
Bravo, quindi sono corretto quindi utilizzare un HandlerThread per gestire * tutte * le operazioni della fotocamera. Per aggiungere alla domanda originale; Che dire di SurfaceView e SurfaceHolder.Callbacks? Dai miei test i callback sono creati sul thread principale, quindi devo usare il mio HandlerThread per gestire quelli (i callback)? –
@KarlMorrison È certamente possibile delegare, ma l'assunto assunto dagli strumenti è che il thread che esegue 'SurfaceView' è quello che gestisce i callback. Gli stati di riferimento: _ "Quando si utilizza questa interfaccia da un thread diverso da quello che esegue SurfaceView, è necessario leggere attentamente i metodi lockCanvas() e Callback.surfaceCreated()." _ –