앱이 파괴되면 서버에 로그 아웃 정보를 보내려고합니다.onDestroy()의 AsyncTask가 실행되지 않음
내가 여기조차 디버깅 할 수 있습니다 : 나는 홈 버튼의 긴 클릭 메뉴에서 응용 프로그램을 닫을 때,
@Override
protected void onDestroy() {
try {
Log.i("myApp", "Activity destroyed");
SharedPreferences prefs1 = getSharedPreferences("com.my.app", Context.MODE_PRIVATE);
Log.i("myApp", "step1");
String response;
Log.i("myApp", "step2");
response = HttpPOSTer.logout(EventCodes.LOGOUT, LOGOUT_EVENTCODE, prefs.getString("sessionID", "null"));
Log.i("myApp", "step3");
if (response.equals("logout")) {
Log.i("myApp", "logged out succesfully");
} else {
Log.i("myApp", "couldn't perform logout");
}
prefs1.edit().clear().commit();
}
catch (InterruptedException e) {
e.printStackTrace();
}
catch (ExecutionException e) {
e.printStackTrace();
}
super.onDestroy();
}
그러나 여기 로그입니다 :
여기에 코드입니다. 중단 점을 배치하지만 디버깅 중에 절대로 실행되지 않습니다.
왜 AsyncTask
이 onDestroy()
에서 호출되지 않는 이유는 무엇입니까?
, 예외가 있어야합니다 대신에 당신이 IntentService를 확장하는 활동을 할 수 있습니다)들의 OnDestroy (에 asyntask 사용하고들의 OnDestroy에서 해당 활동에 전화를 해합니다 로깅 성명 이전에 발생했습니다. HttpPOSTer 코드와 전체 logcat 출력을 게시하십시오. –
마지막 catch 후에 super.onDestroy()를 넣고 보자. – Rahil2952
@WolframRittmeyer, 예외는 발생하지 않습니다. 게시자 전체 logcat, 제발 좀 봐. HttpPOSTer 클래스로 모든 것이 OK입니다. – azizbekian