Case: I am using Async Task for showing some list. When I click on any item of listview another activity comes foreground of last activity. This foreground activity contains a finish button through which the foreground activity finishes.
Problem: When i press finish button the foreground activity finishes but that last activity having the Async Task executes again.
Need: I want when i press finish button then only foreground activity finishes and background activity having Async Task must not execute again. That background activity must be same as it was before opening foreground activity.
EDIT: First Class having Asynch Task
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.restaurant_detail);
Intent i = getIntent();
res_id = i.getStringExtra("id");
gps = new GPSTracker(getApplicationContext());
session = new SessionManagement(getApplicationContext());
fillDatabase = new DatabaseHandler(getApplicationContext());
fillDatabase.open();
count = fillDatabase.fetchCount();
SetUpViews();
SimpleDateFormat sdf = new SimpleDateFormat("EEEE");
Date d = new Date();
dayOfTheWeek = sdf.format(d);
Log.i("WEEKDAY", dayOfTheWeek);
imageLoader = new ImageLoader(getParent());
progressDialog = ProgressDialog.show(getParent(), "", "Loading...");
Log.v(String.valueOf(count), "count");
// new MenuTask().execute();
new DetailsTask().execute();
}
public class DetailsTask extends AsyncTask<String, String, String> {
@Override
protected String doInBackground(String... arg0) {
// Creating JSON Parser instance//////////
JSONParser jParser = new JSONParser();
// Getting JSON String from URL..............
JSONObject jObject = jParser
.getJSONFromUrl("http://smartaway.dk/json/rest_get_details.php?id="
+ res_id);
try {
// /Getting array of Events.......
details = jObject.getJSONArray(TAG_NODE);
// / LOOping through AllEvents........
for (int i = 0; i < details.length(); i++) {
JSONObject e = details.getJSONObject(i);
res_id = e.getString(TAG_ID);
res_name = e.getString(TAG_RESNAME);
logo = e.getString(TAG_RES_LOGO);
name = e.getString(TAG_RESNAME);
city_state = e.getString(TAG_CITY);
street = e.getString(TAG_STREET);
localityString = e.getString(TAG_LOCALITY);
restype = e.getString(TAG_RESTYPE);
Log.v(restype, "restype");
lat = e.getString(TAG_LAT);
Log.v(lat, "latitude");
lng = e.getString(TAG_LNG);
Log.v(lng, "longitude");
cuisineString = e.getString(TAG_COUSINE);
timingsString = e.getString(TAG_TIMING);
// costString = e.getString(TAG_COSRTWO);
res_des_String = e.getString(TAG_RES_DES);
cardString = e.getString(TAG_CARDS);
facilitiesString = e.getString(TAG_FACILITIES);
parkingString = e.getString(TAG_PARKING);
minorderString = e.getString(TAG_MINORDER);
deliverychargesString = e.getString(TAG_DELIVERY_CHARGES);
ratings = e.getString(TAG_RATING);
smily = e.getString(TAG_SMILY);
s_o_t = e.getString(TAG_S_O);
s_c_t = e.getString(TAG_S_C);
m_o_t = e.getString(TAG_M_O);
m_c_t = e.getString(TAG_M_C);
t_o_t = e.getString(TAG_T_O);
t_c_t = e.getString(TAG_T_C);
w_o_t = e.getString(TAG_W_O);
w_c_t = e.getString(TAG_W_C);
th_o_t = e.getString(TAG_TH_O);
th_c_t = e.getString(TAG_TH_C);
f_o_t = e.getString(TAG_F_O);
f_c_t = e.getString(TAG_F_C);
sat_o_t = e.getString(TAG_SAT_O);
sat_c_t = e.getString(TAG_SAT_C);
smily = e.getString(TAG_SMILY);
}
} catch (JSONException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
// progressBar.setVisibility(View.GONE);
progressDialog.dismiss();
detail.setVisibility(View.VISIBLE);
imageLoader.DisplayImage(logo, reslogo);
resname.setText(StringEscapeUtils.unescapeHtml(name));
toptxt.setText(StringEscapeUtils.unescapeHtml(name));
address.setText(StringEscapeUtils.unescapeHtml(street) + " \n"
+ StringEscapeUtils.unescapeHtml(localityString) + " "
+ StringEscapeUtils.unescapeHtml(city_state));
cuisineString = (cuisineString.equals("") ? "Not present"
: StringEscapeUtils.unescapeHtml(cuisineString));
cuisine.setText(cuisineString);
if (dayOfTheWeek.equalsIgnoreCase("monday")) {
timings.setText(m_o_t + " - " + m_c_t);
} else if (dayOfTheWeek.equalsIgnoreCase("tuesday")) {
timings.setText(t_o_t + " - " + t_c_t);
} else if (dayOfTheWeek.equalsIgnoreCase("wednesday")) {
timings.setText(w_o_t + " - " + w_c_t);
} else if (dayOfTheWeek.equalsIgnoreCase("thursday")) {
timings.setText(th_o_t + " - " + th_c_t);
} else if (dayOfTheWeek.equalsIgnoreCase("friday")) {
timings.setText(f_o_t + " - " + f_c_t);
} else if (dayOfTheWeek.equalsIgnoreCase("saturday")) {
timings.setText(sat_o_t + " - " + sat_c_t);
} else if (dayOfTheWeek.equalsIgnoreCase("sunday")) {
timings.setText(s_o_t + " - " + s_c_t);
}
// costfortwo.setText(costString);
res_des_String = (res_des_String.equals("") ? "Not present"
: StringEscapeUtils.unescapeHtml(res_des_String));
cardString = (cardString.equals("") ? "Not present"
: StringEscapeUtils.unescapeHtml(cardString));
parkingString = (parkingString.equals("") ? "Not present"
: StringEscapeUtils.unescapeHtml(parkingString));
facilitiesString = (facilitiesString.equals("") ? "Not present"
: StringEscapeUtils.unescapeHtml(facilitiesString));
minorderString = (minorderString.equals("") ? "Not present"
: StringEscapeUtils.unescapeHtml(minorderString));
deliverychargesString = (deliverychargesString.equals("") ? "Not present"
: StringEscapeUtils.unescapeHtml(deliverychargesString));
res_description.setText(res_des_String.replaceAll(
"(\r\n\t|\n\t|\n|\t)", ""));
cards.setText(cardString);
facilities.setText(facilitiesString);
parking.setText(parkingString);
minoredr.setText(minorderString);
delivery_charges.setText(deliverychargesString);
if (ratings.equals("")) {
rating.setVisibility(View.GONE);
} else {
DecimalFormat numberFormat = new DecimalFormat("##.##");
rating.setText(numberFormat.format(Double.valueOf(ratings)));
}
if (smily.equals("1")) {
smiley.setImageResource(R.drawable.happy_smile);
} else if (smily.equals("0")) {
smiley.setImageResource(R.drawable.sad_smile);
} else {
smileyLayout.setVisibility(View.GONE);
}
}
}
Second Class Having finish Button
setContentView(R.layout.submenulist);
Intent i = getIntent();
main_menu = i.getStringExtra("id");
res_id = i.getStringExtra("res_id");
res_name = i.getStringExtra("res_name");
Log.v("Main Menu Name", main_menu);
fillDatabase = new DatabaseHandler(getApplicationContext());
fillDatabase.open();
count = fillDatabase.fetchCount();
backButton = (Button) findViewById(R.id.finish);
backButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
finish();
}
});
}
Second activity have button on pressing that foreground activity finishes but after finishing that background activity call Acync Task to execute again. How to reslove that.
Thanks a lot