Server端代码
/**
* Created by liyan on 16/1/19.
*/
public class MyService extends Service {
private Messenger mMessenger = new Messenger(new Handler() {
@Override
public void handleMessage(Message msgfromClient) {
Message msgToClient = Message.obtain(msgfromClient);
Log.d("收到客户端发来的消息", msgToClient.what + "");
super.handleMessage(msgfromClient);
}
});
@Override
public IBinder onBind(Intent intent) {
return mMessenger.getBinder();
}
}
<service
android:name=".MyService"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="com.example.myserver.server"></action>
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</service>
Client代码
package com.example.myClient;
import android.app.Activity;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.ServiceConnection;
import android.os.*;
import java.util.Timer;
import java.util.TimerTask;
public class MyActivity extends Activity {
/**
* Called when the activity is first created.
*/
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
bindService();
send();
}
private void send()
{
new Timer().schedule(new TimerTask() {
@Override
public void run() {
Message message=Message.obtain(null,1);
try {
if(mService!=null) {
mService.send(message);
}
} catch (RemoteException e) {
e.printStackTrace();
}
}
},500,500);
}
private Messenger mService;
private Messenger messenger=new Messenger(new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
}
});
private ServiceConnection connection=new ServiceConnection() {
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
mService=new Messenger(service);
}
@Override
public void onServiceDisconnected(ComponentName name) {
mService = null;
}
};
private void bindService()
{
Intent intent = new Intent();
intent.setAction("com.example.myserver.server");
bindService(intent, connection, Context.BIND_AUTO_CREATE);
}
@Override
protected void onDestroy()
{
super.onDestroy();
unbindService(connection);
}
}