Я начинаю новую деятельность в OnPostExecute
и звоню pDialog.dismiss()
, но когда я возвращаюсь из нового действия в предыдущее действие - диалог прогресса все еще запущен. Как я могу уволить его навсегда в момент перехода на другую деятельность?Как отклонить диалог прогресса, когда я перехожу к другому действию?
Это мой класс AsyncTask.
public class FindRideTask extends AsyncTask<Void, Void, Void>
{
private ProgressDialog pDialog;
@Override
protected void onPostExecute(Void result) {
if(pDialog!=null && pDialog.isShowing())
{
pDialog.dismiss();
}
Intent intent = new Intent(getApplicationContext(), FindRideBoard.class);
Bundle bundle = new Bundle();
bundle.putParcelableArrayList("Results", ridesList);
intent.putExtras(bundle);
startActivity(intent);
}
@Override
protected void onPreExecute() {
pDialog = new ProgressDialog(FindRide.this);
pDialog.show(FindRide.this, "מתחבר לשרת", "אנא המתן");
}
@Override
protected Void doInBackground(Void... params) {
s_ParseLogic = ParseLogic.getInstance();
try
{
ArrayList<ParseObject> ridesFromQuery = (ArrayList<ParseObject>)s_ParseLogic.FindRides(sourceList.getText().toString(), destinationList.getText().toString(), time_picker.getText().toString(), m_date.getText().toString());
ridesList = new ArrayList<Ride>();
for(int i = 0 ; i < ridesFromQuery.size() ; i++)
{
ParseObject obj = ridesFromQuery.get(i);
ridesList.add(new Ride((String)obj.get("Source"), (String)obj.get("Destination"), (String)obj.get("Day"),(String) obj.get("Time"), (String)obj.get("IsPermanent"), (String)obj.get("Driver"), (String)obj.get("Driver Phone"))) ;
}
}
catch(ParseException e)
{
}
return null;
}
}
используйте 'pDialog.dismiss();' перед вызовом намерения в postexecute(). – prakash
'pDialog.dismiss();' должно быть вашим первым утверждением в 'onPostExecute()' –
Я пробовал это раньше. он по-прежнему работает :( – Sharon182