绑定服务

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);
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 使用步骤 总共需要的类如下: 1 创建服务类MyService继承Service,并在清单文件中配置 2 定义一个...
    ldlywt阅读 378评论 0 0
  • 一、前言学习了前面的活动与服务后,你会发现服务对于活动而言似乎就是透明的,相反活动对于服务也是透明的,所以我们还需...
    AiPuff阅读 2,157评论 0 1
  • [文章内容来自Developers] 绑定服务是客户端-服务器接口中的服务器。绑定服务可让组件(例如 Activi...
    岳小川阅读 1,132评论 0 1
  • 已经记不太清是什么时候知道了“小确幸”这个词,小小的确定的幸福,不需要多么华丽的渲染,只需要内心得到足够的安宁和满...
    乐晴玛利阅读 471评论 3 3
  • 我愿化做一朵流云 从清晨的山间觅着清脆的鸣声赶来 风阻挡不了我什么 追逐七彩的光是我一生的梦 也是所有披着生命外衣...
    若初yy阅读 379评论 0 2