universales samsung para google dispositivos descargar controlador android loops handler

samsung - lazo de controlador de Android



drivers android samsung (2)

¿alguien puede decirme cuál es el problema con este logcat por favor

06-23 11:09:12.060: ERROR/AndroidRuntime(1116): FATAL EXCEPTION: Speedometer 06-23 11:09:12.060: ERROR/AndroidRuntime(1116): java.lang.RuntimeException: Can''t create handler inside thread that has not called Looper.prepare() 06-23 11:09:12.060: ERROR/AndroidRuntime(1116): at android.os.Handler.<init>(Handler.java:121) 06-23 11:09:12.060: ERROR/AndroidRuntime(1116): at android.widget.Toast.<init>(Toast.java:68) 06-23 11:09:12.060: ERROR/AndroidRuntime(1116): at android.widget.Toast.makeText(Toast.java:231) 06-23 11:09:12.060: ERROR/AndroidRuntime(1116): at com.paad.whereami.WhereAmI.updateGUI(WhereAmI.java:883) 06-23 11:09:12.060: ERROR/AndroidRuntime(1116): at com.paad.whereami.WhereAmI.access$5(WhereAmI.java:860) 06-23 11:09:12.060: ERROR/AndroidRuntime(1116): at com.paad.whereami.WhereAmI$4.run(WhereAmI.java:845) 06-23 11:09:12.060: ERROR/AndroidRuntime(1116): at java.util.Timer$TimerImpl.run(Timer.java:284)


Está intentando iniciar un controlador de eventos de Android como onLocationChanged dentro de un nuevo hilo que creó. En el método "run ()" de la clase de subprocesos, debe llamar a Looper.prepare (), registrar el controlador de eventos y luego llamar a Looper.loop (). Cuando haya terminado con el hilo, llame al método Looper.myLooper (). Quit () para salir.

Ejemplo:

public class MyActivity extends Activity { private Thread thread = new ThreadClass(); private static Looper threadLooper = null; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // Begin the location reading thread. thread.start(); // do UI stuff in here // never sleep in UI thread. Example only. try { Thread.sleep(4000); } catch (InterruptedException e) { e.printStackTrace(); } // end the thread. threadLooper.quit(); // quit the activity this.finish(); } private class ThreadClass extends Thread { @Override public void run() { Looper.prepare(); LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); MyLocationListener locListen = new MyLocationListener(); locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 100, 0, locListen); threadLooper = Looper.myLooper(); Looper.loop(); // loop until "quit()" is called. // remove the update listener to prevent the locationManager from calling it. locationManager.removeUpdates(locListen); } } private class MyLocationListener implements LocationListener { @Override public void onLocationChanged(Location location) { /* Do very intensive work here */ } @Override public void onProviderDisabled(String provider) { } @Override public void onProviderEnabled(String provider) { } @Override public void onStatusChanged(String provider, int status, Bundle extras) { } } }


Yoi tendrá que mostrar brindis por el hilo de la interfaz de usuario. Puedes hacerlo usando el método runOnUiThread en Activity. Aquí hay una explicación con el ejemplo de Android: brindis en un hilo