美文网首页
绑定服务

绑定服务

作者: 阳光时雨 | 来源:发表于2016-06-15 22:44 被阅读28次

    1、DemoService.java编写

    代码如下:

    public class DemoService extends Service {
    
        /**
         *
         * 
         * 
         */
    
        public IBinder onBind(Intent intent) {
            
    
            return new MyBinder();//由于返回值是接口类型的IBinder,所以要新建一个类
        }
        /**
         * MyBinder类既是onBind方法的返回值
         *
         */
        public class MyBinder extends Binder{
            /**
             *
             * 
             */
            public void callMethodInService(int money){
                if(money>500){
                    methodInService();
                }else{
                    Toast.makeText(DemoService.this, "这点钱还想办事呀?", 0).show();
                }
            }
        }
        
        
    
        /**
         * 服务里面的方法
         */
        public void methodInService(){
            Toast.makeText(this, "哈哈,我是服务的方法,被你调用了。", 0).show();
        }
        
        @Override
        public void onCreate() {
            System.out.println("服务被创建了");
            super.onCreate();
        }
        @Override
        public void onDestroy() {
            System.out.println("服务被销毁了。");
            super.onDestroy();
        }
    }
    

    2、MainActivity.java 编写

    代码如下:

    public class MainActivity extends Activity {
        MyBinder myBinder;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
        }
    
        /**
         * 绑定服务,获取服务里面的小蜜,间接的调用服务里面的方法。
         *
        /**
         * 服务连接成功的通讯频道
         /
        public void bind(View view){
            Intent intent = new Intent(this,DemoService.class);
            //intent 意图
            //conn 服务的通讯频道
            //1 服务如果在绑定的时候不存在,会自动创建
            bindService(intent, new MyConn(), BIND_AUTO_CREATE);
        }*
         */
        private class MyConn implements ServiceConnection{
            //当服务被成功连接的时候调用的方法
            
            public void onServiceConnected(ComponentName name, IBinder service) {
            
                myBinder = (MyBinder) service;
            
            }
            //当服务失去连接的时候调用的方法
            
            public void onServiceDisconnected(ComponentName name) {
                
            }
        }
        
        /**
         * 调用服务里面的方法。
         * @param view
         */
        public void call(View view){
            
            myBinder.callMethodInService(3000);
        }
    }

    相关文章

      网友评论

          本文标题:绑定服务

          本文链接:https://www.haomeiwen.com/subject/ukopdttx.html