0

問題の解決を手伝ってください。
キューを介して gui スレッドから別のスレッドにデータを送信しようとしています。
しかし、問題が発生しました。別のスレッドがキューを使用している間、GUI スレッドがオブジェクトをキューに追加すると、Gui スレッドは数秒ブロックされます。そのため、GUI はスムーズではありません。
私のクラスは:

public enum AresManager {
MANAGER;
Queue<AresAction> actionsQueue = new LinkedList<AresAction>();

public synchronized void sendAction(Context context, AresAction action) {
    actionsQueue.add(action);
    Intent intent = new Intent(context, AresServiceSingleHandler.class);
    context.startService(intent);
}

public synchronized AresAction getActionFromQueue() {
    AresAction action = actionsQueue.poll();
    AresLog.v("[Actions Queue] size = " + actionsQueue.size()
            + " (always should be 0)");
    return action;
}

}

4

1 に答える 1