我想在应用程序被销毁时将注销信息发送到服务器。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()
调用?
如果“第三步”不记录,异常必须有发生在您的日志记录之前。请发布您的HttpPOSTer的代码和完整的logcat输出。 –
把你的super.onDestroy()放在最后一个catch之后并且看到它。 – Rahil2952
@WolframRittmeyer,抛出异常。发布整个logcat,请看看。我向你保证,HttpPOSTer类一切正常。 – azizbekian