여러 개의 AsyncTask가있는 활동이 있지만, 뒤로 버튼을 누르면 활동이 다시로드되고 AsyncTask가 다시 실행됩니다. 내가해야 할 일 이전 활동으로 돌아가서 활동과 asynctask를 다시로드하지 않겠습니까? 도와주세요.뒤로 버튼을 누르면 AsyncTask가 다시 시작됩니다.
public class LugarActivity extends SherlockActivity {
CargarDatos cargarDatos;
CargarComentarios cargarComentarios;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_lugar);
cargarDatos = new CargarDatos();
cargarCometarios = new CargarComentarios();
loadData();
}
public void loadData(){
cargarDatos.execute();
}
public void loadOtherData(){
cargarComentarios.execute();
}
public class CargarDatos extends AsyncTask<Integer, Integer, String>{
@Override
protected String doInBackground(Integer... params) {
// here download data
}
@Override
protected void onPostExecute(String html) {
loadOtherData();
}
}
public class CargarComentarios extends AsyncTask<Integer, Integer, String>{
@Override
protected String doInBackground(Integer... params) {
// here download data
}
}
}
는 고정! 나는이 코드를 추가 활동에
public class DataManager {
private static DataManager instance = null;
protected static boolean isShowingTheView = false;
protected DataManager() { }
public static synchronized DataManager getInstance() {
if (instance == null) {
instance = new DataManager();
}
return instance;
}
}
:
은 내가 싱글 톤 클래스 문제를 해결() 메소드
DataManager dataManager = new DataManager();
if(!dataManager.isShowingTheView){
loadData();
dataManager.isShowingTheView = true;
}else{
finish();
}
그리고 마지막으로 내가들의 OnDestroy를 오버라이드 (override)를
@Override
public void onDestroy(){
dataManager.isShowingTheView = false;
super.onDestroy();
}
동일한 문제가있는 경우 loadData를 실행해야하는지 확인하기 위해 if를 추가했습니다. – Pull