package greendrm.helloservice; 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.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class AndroidHelloServiceActivity extends Activity implements OnClickListener { private Intent intentService; private TestService.TestBinder binder; private TestServiceConnection serviceConnection; Button buttonService; Button buttonBinder; Button buttonIncrement; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); buttonService = (Button)findViewById(R.id.buttonService); buttonBinder = (Button)findViewById(R.id.buttonBinder); buttonIncrement = (Button)findViewById(R.id.buttonIncrement); buttonService.setOnClickListener(this); buttonBinder.setOnClickListener(this); buttonIncrement.setOnClickListener(this); } @Override public void onClick(View v) { if (v == buttonService) { if (intentService == null) { intentService = new Intent(this, TestService.class); ComponentName serviceName = startService(intentService); if (serviceName != null) { buttonService.setText(getResources().getText(R.string.servicestop)); } else { intentService = null; } } else { if (stopService(intentService)) { intentService = null; buttonService.setText(getResources().getText(R.string.servicestart)); } } } else if (v == buttonBinder) { if (binder == null) { serviceConnection = new TestServiceConnection(); Intent intent = new Intent(this, TestService.class); if (bindService(intent, serviceConnection, Context.BIND_AUTO_CREATE)) { buttonBinder.setText(getResources().getText(R.string.binderUnbind)); } else { binder = null; } } else { unbindService(serviceConnection); binder = null; buttonBinder.setText(getResources().getText(R.string.binderService)); } } else if (v == buttonIncrement) { if (binder != null) { binder.increment(); } } } private class TestServiceConnection implements ServiceConnection { @Override public void onServiceConnected(ComponentName name, IBinder _binder) { binder = (TestService.TestBinder)_binder; } @Override public void onServiceDisconnected(ComponentName name) { binder = null; } } }