Ho un servizio che riceve un comando da Internet e avvia un thread in background. Questo thread è passato un gestore dal servizio (il servizio è limitato e passato il gestore) e invia un messaggio al gestore per scattare una foto. Sono bloccato sull'implementazione del gestore.Android: come utilizzare un handle handleMessage e accesso al riferimento all'agente principale
static Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
//TODO: Handle different types of messages
mCamera.takePicture(null, null, MainActivity.this);
}
};
Domande:
- fa Handler ha bisogno di essere statica? Senza statico, ricevo "La classe di questo gestore dovrebbe essere statica o potrebbero verificarsi perdite"
- La telecamera deve essere statica? Mi è stato detto di rendere mCamera statica, ma perché è necessario? C'è un modo per impostare takePicture senza rendere statica mCamera?
- Qual è il modo corretto per passare il riferimento a MainActivity? In questo momento ho l'errore: "Nessuna istanza allegando del tipo MainActivity è accessibile in ambito"
Dai un'occhiata qui: http://stackoverflow.com/a/16071874/2359488 –