废话不说,最近在弄android的推送。使用的是androidpn,发现Server晚于Client启动或者Client连接后,Server重启,会出现Client无法再连接的情况。分析是因为Client的连接时,对队列的管理有一点点问题。所以修改如下:
XmppManager.java中。
runTask();
XmppManager.java中。
- private void addTask(Runnable runnable) {
- Log.d(LOGTAG, "addTask(runnable)...");
- taskTracker.increase();
- synchronized (taskList) {
- if (taskList.isEmpty() && !running) {
- running = true;
- futureTask = taskSubmitter.submit(runnable);
- if (futureTask == null) {
- taskTracker.decrease();
- }
- } else {
private void addTask(Runnable runnable) {
Log.d(LOGTAG, "addTask(runnable)...");
taskTracker.increase();
synchronized (taskList) {
if (taskList.isEmpty() && !running) {
running = true;
futureTask = taskSubmitter.submit(runnable);
if (futureTask == null) {
taskTracker.decrease();
}
} else {
runTask();
- taskList.add(runnable);
- }
- }
- Log.d(LOGTAG, "addTask(runnable)... done");
- }
taskList.add(runnable);
}
}
Log.d(LOGTAG, "addTask(runnable)... done");
}