Tengo lo siguiente en mi actividad que uso para descargar las películas de un usuario en su cola de LoveFilm, pero el ProgressDialog nunca aparece.ProgressDialog no aparece
public class MyListActivity extends Activity {
SharedPreferences prefs;
ProgressDialog m_progressDialog;
Thread listThread;
User user;
private Runnable threadProc_initializeQueue = new Runnable() {
public void run() {
user.fetchQueues();
Queue defaultQueue = user.getDefaultQueue();
defaultQueue.fetchTitles();
m_progressDialog.dismiss();
}
};
/* (non-Javadoc)
* @see android.app.Activity#onCreate(android.os.Bundle)
*/
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
prefs = getSharedPreferences(getString(R.string.app_name), MODE_PRIVATE);
// Authenticate the user if needs be.
if(!prefs.getBoolean("isAuthenticated", false)) {
Intent i = new Intent(this, OAuthActivity.class);
startActivity(i);
finish();
} else {
// Get the users default list.
LoveDroid app = (LoveDroid) getApplication();
user = new User(app);
m_progressDialog = ProgressDialog.show(MyListActivity.this, "Please Wait", "Loading", true);
listThread = new Thread(null, threadProc_initializeQueue);
listThread.run();
}
}
he visto otros con este problema, y todos ellos básicamente moverse a recomendar una línea que se parece a la mía
m_progressDialog = ProgressDialog.show(MyListActivity.this, "Please Wait", "Loading", true);
El resto del código funciona, las películas se descargan a través de los usuarios el hilo, pero el diálogo nunca aparece, también lleva unos segundos, no es como si el diálogo se descartara antes de que haya tenido tiempo de aparecer.
Tendré que verificar la clase AsyncTask - Nunca la he usado antes y me parece muy útil. Con los diálogos de progreso, la llamada a dismiss() puede ser llamada desde cualquier hilo, aunque se requiere que el resto de los métodos sean llamados desde el hilo de la interfaz de usuario. –
Estuviste en Amitlicht, reemplacé el subproceso con un AsyncTask y todo funciona como debería, muchas gracias. –
pero luego el objeto de diálogo es local al método preExecute? –