public class MainActivity extends AppCompatActivity {
private MyCon myCon;
MySer.MyB binder;
//混合开启服务 先star 再bind22 再jiebang 服务不会被销毁
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void star(View view) {
System.out.println("ddddddddddddddddd");
startService(new Intent(this, MySer.class));
}
public void stop(View view) {
stopService(new Intent(this, MySer.class));
}
public void bind22(View view) {
myCon = new MyCon();
bindService(new Intent(this,MySer.class),myCon,BIND_AUTO_CREATE);
}
public void jiebang(View view) {
unbindService(myCon);
} public void sc(View view) {
binder.call();
}
class MyCon implements ServiceConnection{
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
System.out.println("MyCon.onServiceConnected");
binder= (MySer.MyB) service;
}
@Override
public void onServiceDisconnected(ComponentName name) {
System.out.println("MyCon.onServiceDisconnected");
}
}
@Override
protected void onDestroy() {
super.onDestroy();
}
}
public class MySer extends Service {
@Override
public IBinder onBind(Intent intent) {
System.out.println("MySer.onBind");
return new MyB();
}
@Override
public void onCreate() {
System.out.println("MySer.onCreate");
super.onCreate();
}
@Override
public void onDestroy() {
System.out.println("MySer.onDestroy");
super.onDestroy();
}
@Override
public boolean onUnbind(Intent intent) {
System.out.println("MySer.onUnbind");
return super.onUnbind(intent);
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
System.out.println("MySer.onStartCommand");
return super.onStartCommand(intent, flags, startId);
}
public void callServices() {
System.out.println("调取到服务里面的方法了");
Toast.makeText(this,"我就是",Toast.LENGTH_LONG).show();
}
public class MyB extends Binder {
public void call() {
callServices();
}
}
}