Android 之 bindServer服务

我们在通信的时候需要绑定服务器端,如何链接服务端呢,看例子:

我们在MainActivity中添加如下代码:

public class MainActivity extends Activity implements OnClickListener, ServiceConnection{//实现OnClickListener, ServiceConnection接口

	private Button m_startBtn;
	private Button m_stopBtn;
	private Button m_bindBtn;
	private Button m_unBindBtn;
	
	private Intent m_serverIntent;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        m_serverIntent  = new Intent(this, EchoServer.class); // 启动server
        
        m_startBtn = (Button) findViewById(R.id.start);
        m_stopBtn = (Button) findViewById(R.id.stop);
        m_bindBtn = (Button) findViewById(R.id.bindServer);
        m_unBindBtn = (Button) findViewById(R.id.unbindServer);
        
        m_startBtn.setOnClickListener(this);
        m_stopBtn.setOnClickListener(this);
        m_bindBtn.setOnClickListener(this);
        m_unBindBtn.setOnClickListener(this);
                
    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
    
    
    @Override
    public void onClick(View v) {
    	// TODO Auto-generated method stub
    	switch(v.getId()) {
    	case R.id.start:
    		startService(m_serverIntent);
    		break;
    	case R.id.stop:
    		stopService(m_serverIntent);
    		break;
    	case R.id.bindServer:
    		System.out.print("R.id.bindServer");
    		bindService(m_serverIntent, this, Context. BIND_AUTO_CREATE);
    		break;
    	case R.id.unbindServer:
    		unbindService(this);
    		break;
    	default:
    		break;
    	}
    }
    
    @Override
    public void onServiceConnected(ComponentName name, IBinder service) {
    	System.out.print("onServiceConnected" + "\n"); // the metho is called that connects the server
    }
    
    @Override
    public void onServiceDisconnected(ComponentName name) {
    	System.out.print("onServiceDisconnected" + "\n"); // the metho is called that disconnects the server
    }
    
}

服务端:

public class EchoServer extends Service {

	
	@Override
	public IBinder onBind(Intent arg0) {
		java.lang.System.out.print("bind server1" + "\n");
		java.lang.System.out.print("bind server2" + "\n");
		return echoBinder;
	}
	
	private EchoServerBinder echoBinder  = new EchoServerBinder();
 
	public class EchoServerBinder extends Binder { //必须要实现一个Binder座位onBind的返回值

	}
	
	@Override
	public void onCreate() {
		java.lang.System.out.print("onCreate" + "\n");
		super.onCreate();
	}
	
	@Override
	public void onDestroy() {
		java.lang.System.out.print("onDestroy" + "\n");
		super.onDestroy();
	}

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值