package org.android.textbook.lesson2.messengerservicesample;
import android.app.Activity;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.ServiceConnection;
import android.os.Bundle;
import android.os.IBinder;
import android.os.Message;
import android.os.Messenger;
import android.os.RemoteException;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class MainActivity extends Activity {
Messenger mService = null;
private ServiceConnection mConnection = new ServiceConnection() {
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
mService = new Messenger(service);
sendMessage(MessengerService.MSG_ACTIVITY_CONNECTED, "MainActivity�Ɛڑ����܂���");
}
@Override
public void onServiceDisconnected(ComponentName name) {
mService = null;
}
};
private void sendMessage(int what, Object obj) {
if (mService != null) {
try {
Message msg = Message.obtain();
msg.what = what;
msg.obj = obj;
mService.send(msg);
} catch (RemoteException e) {
e.printStackTrace();
}
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
((Button) findViewById(R.id.button1)).setOnClickListener(startListener);
((Button) findViewById(R.id.button2)).setOnClickListener(eventListener);
((Button) findViewById(R.id.button3)).setOnClickListener(stopListener);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
private OnClickListener startListener = new OnClickListener() {
@Override
public void onClick(View v) {
Intent bindIntent = new Intent(MainActivity.this, MessengerService.class);
bindService(bindIntent, mConnection, Context.BIND_AUTO_CREATE);
}
};
private OnClickListener stopListener = new OnClickListener() {
@Override
public void onClick(View v) {
sendMessage(MessengerService.MSG_ACTIVITY_DISCONNECTED, "dissconnected from user");
unbindService(mConnection);
}
};
private OnClickListener eventListener = new OnClickListener() {
@Override
public void onClick(View v) {
sendMessage(MessengerService.MSG_COMMAND, "send message from activity");
}
};
}