Дело: Я использую задачу Async для отображения некоторого списка. Когда я нажимаю на какой-либо элемент списка, другое мероприятие выходит за рамки последнего действия. Эта операция переднего плана содержит кнопку завершения, через которую заканчивается операция переднего плана.Отключение повторного выполнения задачи Async при завершении операции переднего плана
Проблема: Когда я нажимаю кнопку Готово переднего плана отделки деятельности, но это последняя деятельность, имеющая Асинхронный задачу снова выполняет.
Потребность: Я хочу, чтобы, когда я нажимаю кнопку закончить, то только переднюю план отделку деятельности и фоновую активность, имеющую Асинхронная Задача не должна выполняться снова. Эта фоновая активность должна быть такой же, как и перед открытием переднего плана.
EDIT: первого класса, имеющий асинхронная Задача
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);
}
}
}
второго класса Наличие отделки Кнопка
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();
}
});
}
Вторая деятельность имеет кнопку нажать, что на переднем плане отделки деятельности, но после окончания этого фона вызов активности Acync Задача выполнить снова. Как перенести это.
Большое спасибо
Вы можете разместить некоторые пожалуйста, код для следующего: Ваш код AsyncTask, как вы запустите активность переднего плана и [launchMode] (http://developer.android.com/guide/topics/manifest/activity-element.html#lmode) ваших действий в вашем AndroidManifest? – verybadalloc
напишите свой код .. – bakriOnFire
Я не хочу, чтобы Asych Task выполнялась снова, когда я нажимаю кнопку «Назад» из основной деятельности.У меня нет кода, но вы хотите знать его концепцию. –