在许多人的帮助下,我得到了这样的代码:但即时通讯面临两个问题1 - 看起来线程睡眠只影响线程而不是消息进行中的对话框,因此Tarea finalizada不能被看作出现并迅速消失。如果我设置Tarea inicializada(开始任务)的消息,它不能显示...如果我把它放在后台它不显示,如果我把它放在“Cargando datos por favor espere”之后(加载数据请稍候)它显示Tarea inicializada但不是Cargando数据。我需要一些技巧来查看不同的消息...Asynk任务不执行doinBackground
理想是: - “Cargando DATOS POR青睐espere”(两秒) - 利亚inicializada(两秒) - 利亚finalizada(两秒钟)。 - 辞退,并返回到主活动
再次感谢
类ServicioInicial扩展的AsyncTask <虚空,虚空,虚空> { 私人语境mContext;
ProgressDialog mProgress;
private ServicioInicialFinalizado mCallback;
public ServicioInicial(Context context) {
this.mContext=context;
this.mCallback= (ServicioInicialFinalizado) context;
}
@Override
protected void onPreExecute() {
// TODO Auto-generated method stub
super.onPreExecute();
mProgress= new ProgressDialog(mContext);
mProgress.setMessage("Cargando contactos...Por favor espere");
mProgress.show();
// mProgress.setMessage ("Tarea comenzada");
}
@Override
protected Void doInBackground(Void... resultado) {
try
{
//Aqui simulo un calculo supercomplicado y lo ralentizamos a 500 ms por numero
// mProgress.setMessage("Tarea comenzada");
//Reseteo la agendaGlobal
AgendaGlobal.getInstance().miAgenda.clear();
AgendaGlobal.getInstance().miAgenda.add(new contactoAgenda("Belen", "c/ Diego Madrazo","92458", "[email protected]",true, true, false, false, true,"Familia", R.drawable.aguila));
AgendaGlobal.getInstance().miAgenda.add(new contactoAgenda("Daniel", "c/ Diego Madrazo","92458", "[email protected]",true, true, false, false, true,"Familia", R.drawable.caballo));
AgendaGlobal.getInstance().miAgenda.add(new contactoAgenda("Eduardo", "c/ Segovia","92458", "[email protected]",true, true, false, false, true,"Familia", R.drawable.camaleon));
AgendaGlobal.getInstance().miAgenda.add(new contactoAgenda("Belen", "c/ Diego Madrazo","92458", "[email protected]",true, true, false, false, true,"Familia", R.drawable.aguila));
AgendaGlobal.getInstance().miAgenda.add(new contactoAgenda("Daniel", "c/ Diego Madrazo","92458", "[email protected]",true, true, false, false, true,"Familia", R.drawable.caballo));
AgendaGlobal.getInstance().miAgenda.add(new contactoAgenda("Eduardo", "c/ Segovia","92458", "[email protected]",true, true, false, false, true,"Familia", R.drawable.camaleon));
AgendaGlobal.getInstance().miAgenda.add(new contactoAgenda("Belen", "c/ Diego Madrazo","92458", "[email protected]",true, true, false, false, true,"Familia", R.drawable.aguila));
AgendaGlobal.getInstance().miAgenda.add(new contactoAgenda("Daniel", "c/ Diego Madrazo","92458", "[email protected]",true, true, false, false, true,"Familia", R.drawable.caballo));
AgendaGlobal.getInstance().miAgenda.add(new contactoAgenda("Eduardo", "c/ Segovia","92458", "[email protected]",true, true, false, false, true,"Familia", R.drawable.camaleon));
// resultado[] = (Integer)(Math.random()*(3))+1;// numero = (int) (Math.random() *6) + 1; para un dado
// mProgress.setMessage("Resultado Int:" + resultado);
// resultado = (Integer) resultado; // convierto a entero me aseguro
Thread.sleep(3000);
//mProgress.setMessage ("Tarea finalizada");
//SystemClock.sleep(1000);
} catch (Exception e) {
e.printStackTrace();
}
// mProgress.setMessage ("Tarea finalizada");
return null;
}
@Override
protected void onCancelled(Void result) {
// TODO Auto-generated method stub
super.onCancelled(null);
}
@Override
protected void onPostExecute(Void result) {
mProgress.setMessage ("Tarea finalizada");
try {
Thread.sleep (3000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
mProgress.dismiss();
/*if(mProgress != null){
mProgress.dismiss();
}*/
//Aqui es donde devolvemos los datos a donde nos llama
mCallback.onAcabeInicializacion(5);
super.onPostExecute(null);
}
@Override
protected void onProgressUpdate(Void... values) {
// TODO Auto-generated method stub
//mProgress.setMessage(values[0]);
//super.onProgressUpdate(values);
}
}
PLease显示你如何执行这个任务 – 2014-12-27 13:39:22
我从我的mainactivity调用这个:new ServicioInicial(MainActivity.this).execute(); – 2014-12-27 13:57:48