main
public class MainActivity extends AppCompatActivity {
private Button btn1;
private Button btn2;
private Button btn3;
private Button btn4;
private Button btn5;
private Button btn6;
private Intent intent;
public static ServiceConnection connection;
private MyService.MyBinder myBinder;
private MyService service;
private static final String TAG = "MainActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn1 = (Button) findViewById(R.id.btn1);
btn2 = (Button) findViewById(R.id.btn2);
btn3 = (Button) findViewById(R.id.btn3);
btn4 = (Button) findViewById(R.id.btn4);
btn5 = (Button) findViewById(R.id.btn5);
btn6 = (Button) findViewById(R.id.btn6);
intent = new Intent(this, MyService.class);
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
startService(intent);
}
});
btn2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
stopService(intent);
}
});
btn3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
connection = new ServiceConnection() {
@Override
public void onServiceConnected(ComponentName componentName, IBinder iBinder) {
Log.i(TAG, "onServiceConnected: ");
myBinder= (MyService.MyBinder) iBinder;
service = myBinder.getService();
}
@Override
public void onServiceDisconnected(ComponentName componentName) {
Log.i(TAG, "onServiceDisconnected: ");
}
};
bindService(intent,connection, Service.BIND_AUTO_CREATE);
}
});
btn4.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
unbindService(connection);
}
});
btn5.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
service.nextsing();
service.lastsing();
}
});
btn6.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent1 = new Intent(MainActivity.this, Main2Activity.class);
startActivity(intent1);
}
});
}
}
main2
public class Main2Activity extends AppCompatActivity {
private static final String TAG = "Main2Activity";
private Intent intent;
private ServiceConnection connection;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
intent = new Intent(Main2Activity.this,MyService.class);
}
public void click(View view) {
connection = new ServiceConnection() {
@Override
public void onServiceConnected(ComponentName componentName, IBinder iBinder) {
Log.i(TAG, "onServiceConnected: ");
MyService.MyBinder binder= (MyService.MyBinder) iBinder;
binder.next();
}
@Override
public void onServiceDisconnected(ComponentName componentName) {
}
};
bindService(intent,connection, Service.BIND_AUTO_CREATE);
}
public void lick(View view) {
unbindService(connection);
}
public void ick(View view) {
unbindService(MainActivity.connection);
}
}
MyService
public class MyService extends Service {
private static final String TAG = "MyService";
public MyService() {
}
@Override
public IBinder onBind(Intent intent) {
Log.i(TAG, "onBind: ");
return new MyBinder();
}
@Override
public void onCreate() {
super.onCreate();
Log.i(TAG, "onCreate: ");
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Log.i(TAG, "onStartCommand: ");
return super.onStartCommand(intent, flags, startId);
}
@Override
public boolean onUnbind(Intent intent) {
Log.i(TAG, "onUnbind: ");
return super.onUnbind(intent);
}
@Override
public void onDestroy() {
super.onDestroy();
Log.i(TAG, "onDestroy: ");
}
class MyBinder extends Binder{
public MyBinder() {
}
public MyService getService(){
return MyService.this;
}
public void next(){
nextsing();
}
public void last(){
lastsing();
}
}
public void lastsing() {
Log.i(TAG, "上一首");
}
public void nextsing(){
Log.i(TAG, "下一首");
}
}