Socket编程之android service

本文介绍了一种基于Android平台的服务组件SocketService的设计与实现方法。该服务利用Socket进行网络通信,并通过ServerThread处理多客户端连接请求。此外,还介绍了如何使用Binder机制实现Service与Activity之间的交互。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package service;
import android.app.Service;
import android.content.Intent;
import android.os.Binder;
import android.os.IBinder;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.InetSocketAddress;
import java.net.Socket;
import java.net.UnknownHostException;
import yskj.buletooth.ServerThread;

public class SocketService extends Service implements ServerThread.ThreadCallBack {

    private ServiceCallBack callback;


    public SocketService() {
    }

    public class LocalBinder extends Binder {
        public SocketService getService() {
            return SocketService.this;
        }
    }
    private ServerThread serverThread;
    private final IBinder mBinder = new LocalBinder();

    @Override
    public IBinder onBind(Intent intent) {
        return mBinder;
    }

    @Override
    public void onCreate() {

//        startThread();

        super.onCreate();
    }

    public interface ServiceCallBack
    {
         void callback(String response);
    }


    public void init(ServiceCallBack callback)
    {
        this.callback = callback;
    }

    @Override
    public void response(String response) {
        callback.callback(response);
    }


    public void startThread()
    {
        if (serverThread == null){
            serverThread = ServerThread.getInstance();
            serverThread.setCallBack(this);
            serverThread.start();
        } else{
            if (!serverThread.isClose()){
                serverThread.onThreadResume();
            }
        }
    }


    public void pauseThread()
    {
        if (!serverThread.isClose()){
            if (serverThread!=null) {
                serverThread.onThreadPause();
            }
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值