diff --git a/android-jdk6-redkale/src/java/nio/channels/CompletionHandler.java b/android-jdk6-redkale/src/java/nio/channels/CompletionHandler.java
new file mode 100644
index 000000000..2574dbfbf
--- /dev/null
+++ b/android-jdk6-redkale/src/java/nio/channels/CompletionHandler.java
@@ -0,0 +1,66 @@
+/*
+ * Copyright (c) 2007, 2009, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package java.nio.channels;
+
+/**
+ * A handler for consuming the result of an asynchronous I/O operation.
+ *
+ *
The asynchronous channels defined in this package allow a completion
+ * handler to be specified to consume the result of an asynchronous operation.
+ * The {@link #completed completed} method is invoked when the I/O operation
+ * completes successfully. The {@link #failed failed} method is invoked if the
+ * I/O operations fails. The implementations of these methods should complete
+ * in a timely manner so as to avoid keeping the invoking thread from dispatching
+ * to other completion handlers.
+ *
+ * @param The result type of the I/O operation
+ * @param The type of the object attached to the I/O operation
+ *
+ * @since 1.7
+ */
+
+public interface CompletionHandler {
+
+ /**
+ * Invoked when an operation has completed.
+ *
+ * @param result
+ * The result of the I/O operation.
+ * @param attachment
+ * The object attached to the I/O operation when it was initiated.
+ */
+ void completed(V result, A attachment);
+
+ /**
+ * Invoked when an operation fails.
+ *
+ * @param exc
+ * The exception to indicate why the I/O operation failed
+ * @param attachment
+ * The object attached to the I/O operation when it was initiated.
+ */
+ void failed(Throwable exc, A attachment);
+}
diff --git a/android-jdk6-redkale/src/org/redkale/convert/Factory.java b/android-jdk6-redkale/src/org/redkale/convert/Factory.java
index 37a23d129..a719860d7 100644
--- a/android-jdk6-redkale/src/org/redkale/convert/Factory.java
+++ b/android-jdk6-redkale/src/org/redkale/convert/Factory.java
@@ -11,6 +11,7 @@ import java.util.Map;
import java.lang.reflect.*;
import java.math.BigInteger;
import java.net.*;
+import java.nio.channels.*;
import static org.redkale.convert.ext.InetAddressSimpledCoder.*;
import java.util.*;
import java.util.concurrent.*;
@@ -91,6 +92,7 @@ public abstract class Factory {
this.register(Class.class, TypeSimpledCoder.instance);
this.register(InetSocketAddress.class, InetSocketAddressSimpledCoder.instance);
this.register(Pattern.class, PatternSimpledCoder.instance);
+ this.register(CompletionHandler.class, CompletionHandlerSimpledCoder.instance);
//---------------------------------------------------------
this.register(boolean[].class, BoolArraySimpledCoder.instance);
this.register(byte[].class, ByteArraySimpledCoder.instance);
diff --git a/android-jdk6-redkale/src/org/redkale/convert/ext/CompletionHandlerSimpledCoder.java b/android-jdk6-redkale/src/org/redkale/convert/ext/CompletionHandlerSimpledCoder.java
new file mode 100644
index 000000000..8fec50141
--- /dev/null
+++ b/android-jdk6-redkale/src/org/redkale/convert/ext/CompletionHandlerSimpledCoder.java
@@ -0,0 +1,33 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package org.redkale.convert.ext;
+
+import java.nio.channels.*;
+import org.redkale.convert.*;
+
+/**
+ *
+ * @see http://www.redkale.org
+ * @author zhangjx
+ * @param
+ * @param
+ */
+public class CompletionHandlerSimpledCoder extends SimpledCoder {
+
+ public static final CompletionHandlerSimpledCoder instance = new CompletionHandlerSimpledCoder();
+
+ @Override
+ public void convertTo(W out, CompletionHandler value) {
+ out.writeNull();
+ }
+
+ @Override
+ public CompletionHandler convertFrom(R in) {
+ in.readObjectB();
+ return null;
+ }
+
+}