混合开启服务

来源:互联网 发布:不教翠羽遇萧峰 知乎 编辑:程序博客网 时间:2024/04/28 17:05
                        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();                                }                            }                        }
0 0