public
class
MainActivity
extends
Activity {
private
Messenger mRemote;
private
ServiceConnection mConnection =
new
ServiceConnection() {
@Override
public
void
onServiceConnected(ComponentName name, IBinder service) {
mRemote =
new
Messenger(service);
if
(mRemote !=
null
) {
Message msg =
new
Message();
msg.what =
0
;
msg.obj =
new
Messenger(
new
RemoteHandler());
try
{
mRemote.send(msg);
}
catch
(RemoteException e) {
e.printStackTrace();
}
}
}
@Override
public
void
onServiceDisconnected(ComponentName name) {
mRemote =
null
;
}
};
@Override
protected
void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Intent serviceIntent =
new
Intent(
this
, TestService.
class
);
bindService(serviceIntent, mConnection, Context.BIND_AUTO_CREATE);
}
@Override
protected
void
onDestroy() {
super
.onDestroy();
unbindService(mConnection);
}
public
void
testSendMessage() {
if
(mRemote !=
null
) {
Message msg =
new
Message();
msg.what =
1
;
try
{
mRemote.send(msg);
}
catch
(RemoteException e) {
e.printStackTrace();
}
}
}
private
class
RemoteHandler
extends
Handler {
@Override
public
void
handleMessage(Message msg) {
super
.handleMessage(msg);
}
}
}