我開始一個新的活動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;
}
}
在postexecute()的意圖調用之前使用'pDialog.dismiss();'。 – prakash 2014-10-10 08:02:05
'pDialog.dismiss();'應該是'onPostExecute()'的第一條語句' – 2014-10-10 08:03:08
我以前試過這個。它仍在運行:( – Sharon182 2014-10-10 08:07:54