Я использовал Async Task
много раз, но перед этим видом проблемы в первый раз. Поиск SO
, но не нашел подходящего решения, которое решает мою проблему.onpostexecute не получает вызов после успешного завершения doinbackground
Моя проблема onPostExecute
не вызвана в задачу Async, все операции, которые находятся в doinbackground
, завершены, но контроль не достигает onPostExecute
... неспособный понять причину.
Пожалуйста, помогите мне.
Спасибо за ваше время.
Код:
public class deletedaily extends AsyncTask<Void , Void, long[]>{
ProgressDialog pd;
long resultdelete;
protected void onPreExecute(){
pd=new ProgressDialog(StockDetail.this);
if(pd!=null){
pd.setMessage("Deleting data.....please wait");
pd.show();
}
}
protected long[] doInBackground(Void... params) {
// TODO Auto-generated method stub
try{
Database.getInstance(getApplicationContext()).getWritableDatabase().beginTransaction();
resultdelete = Database.getInstance(getApplicationContext()).getWritableDatabase().delete(st.tablename, st.column2 + "=? AND " + st.column3 + "=?", new String[] {getdailydate.toString(),stockname});
Database.getInstance(getApplicationContext()).getWritableDatabase().setTransactionSuccessful();
new popdailydata().execute(); //here calling list view to populate after deletion
}
catch(Exception dailydeleteerror){}
finally{
Database.getInstance(getApplicationContext()).getWritableDatabase().endTransaction();
}
return new long[] {resultdelete};
}
protected void onPostExecute(long result){
System.out.println("postexecute entered");
if(pd!=null){
pd.dismiss();
}
if(result!=-1){
Toast.makeText(getApplicationContext(),"Date deleted from your portfolio", Toast.LENGTH_LONG).show();
}
else{
Toast.makeText(getApplicationContext(),"Failed to delete ....try again", Toast.LENGTH_LONG).show();
}
}
}
Редактировать ---------------------------------
Я звоню от OnClick из изображения Buton
deletedailydata.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
new deletedaily().execute();
}
});
Пожалуйста, покажите, как вы запускаете Asynctask .. – greenapps
Это должно быть 'onPostExecute (long [] result)'. – greenapps
@greenapps Спасибо за ваш отзыв .. Пожалуйста, проверьте мое редактирование – Siva