我在我的onDestroy
函数中运行了这段代码:
@Override
protected void onDestroy() {
if (!(null == theUser.glideId)) {
JSONObject req = new JSONObject();
try {
req.put("actionKey", "UserPresenceInactive");
req.put("userId", theUser.userId);
new ServerRequest().execute(req); //Run an AsyncTask
} catch (JSONException e) {
e.printStackTrace();
}
}
super.onDestroy();
}
在AsyncTask
我向服务器发送请求(仅返回 200 响应)。
我的问题是,这样做有什么影响(如果有的话)?
Activity 会被销毁吗?如果服务器没有响应,应用程序是否保持唤醒状态并可能进入 ANR?有什么想法吗?
编辑
我尝试这样做,但得到了一个android.os.NetworkOnMainThreadException
.
new Runnable() {
@Override
public void run() {
JSONObject req = new JSONObject();
try {
req.put("actionKey", "UserPresenceInactive");
req.put("userId", theUser.userId);
new ServerRequest().execute(req); //Run an AsyncTask
} catch (JSONException e) {
e.printStackTrace();
}
}
}.run();
更新#2
使用 aThread
而不是 aRunnable
成功了!