Add one button into your layout (main.xml):

<Button android:id="@+id/send_1_button"            android:layout_width="fill_parent" android:layout_height="wrap_content"            android:text="send 1 request"/>

And this simple code for your activity
import java.io.IOException;import java.io.InputStream;import android.app.Activity;import android.net.LocalServerSocket;import android.net.LocalSocket;import android.net.LocalSocketAddress;import android.os.Bundle;import android.os.Handler;import android.util.Log;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.Toast;/**** @author Denis Migol**/public class DemoActivity extends Activity {        public static String SOCKET_ADDRESS = "your.local.socket.address";        // background threads use this Handler to post messages to    // the main application thread    private final Handler handler = new Handler();        public class NotificationRunnable implements Runnable {        private String message = null;                public void run() {            if (message != null && message.length() > 0) {                showNotification(message);            }        }                /**        * @param message the message to set        */        public void setMessage(String message) {            this.message = message;        }    }        // post this to the Handler when the background thread notifies    private final NotificationRunnable notificationRunnable = new NotificationRunnable();        public void showNotification(String message) {        Toast.makeText(this, message, Toast.LENGTH_SHORT).show();    }        class SocketListener extends Thread {        private Handler handler = null;        private NotificationRunnable runnable = null;                public SocketListener(Handler handler, NotificationRunnable runnable) {            this.handler = handler;            this.runnable = runnable;            this.handler.post(this.runnable);        }                /**        * Show UI notification.        * @param message        */        private void showMessage(String message) {            this.runnable.setMessage(message);            this.handler.post(this.runnable);        }                @Override        public void run() {            //showMessage("DEMO: SocketListener started!");            try {                LocalServerSocket server = new LocalServerSocket(SOCKET_ADDRESS);                while (true) {                    LocalSocket receiver = server.accept();                    if (receiver != null) {                        InputStream input = receiver.getInputStream();                                                // simply for java.util.ArrayList                        int readed = input.read();                        int size = 0;                        int capacity = 0;                        byte[] bytes = new byte[capacity];                                                // reading                        while (readed != -1) {                            // java.util.ArrayList.Add(E e);                            capacity = (capacity * 3)/2 + 1;                            //bytes = Arrays.copyOf(bytes, capacity);                            byte[] copy = new byte[capacity];                            System.arraycopy(bytes, 0, copy, 0, bytes.length);                            bytes = copy;                            bytes[size++] = (byte)readed;                                                        // read next byte                            readed = input.read();                        }                                                showMessage(new String(bytes, 0, size));                    }                }            } catch (IOException e) {                Log.e(getClass().getName(), e.getMessage());            }        }    }        public static void writeSocket(String message) throws IOException {        LocalSocket sender = new LocalSocket();        sender.connect(new LocalSocketAddress(SOCKET_ADDRESS));        sender.getOutputStream().write(message.getBytes());        sender.getOutputStream().close();    }        @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);                new SocketListener(this.handler, this.notificationRunnable).start();                Button send1 = (Button)findViewById(R.id.send_1_button);        send1.setOnClickListener(new OnClickListener() {                        @Override            public void onClick(View v) {                try {                    writeSocket("hello");                } catch (IOException e) {                    Log.e(getClass().getName(), e.getMessage());                }            }                    });    }}

更多相关文章

  1. 代码中设置drawableleft
  2. android 3.0 隐藏 系统标题栏
  3. Android开发中activity切换动画的实现
  4. Android(安卓)学习 笔记_05. 文件下载
  5. Android中直播视频技术探究之—摄像头Camera视频源数据采集解析
  6. 技术博客汇总
  7. android 2.3 wifi (一)
  8. AndRoid Notification的清空和修改
  9. Android中的Chronometer

随机推荐

  1. URI是什么,在Android中有什么作用?
  2. Android(安卓)插件化 动态升级
  3. Android的风暴前夕
  4. Android中线程的应用
  5. Android的ps命令介绍和技巧
  6. Android中的Margin和Padding及Android支
  7. android:layout_gravity 和 android:grav
  8. Android(安卓)插件化 动态升级
  9. Android性能调优总结
  10. 简析Android对Linux内核的改动