1、编写activity_main.xml
    
编写MainActivity.java
package com.hyzhou.testservice; import com.hyzhou.testservice.TestServer.MyBinder; import android.os.Bundle;import android.os.IBinder;import android.view.View;import android.app.Activity;import android.content.ComponentName;import android.content.Intent;import android.content.ServiceConnection;  public class MainActivity extends Activity {    //步骤4:在activity里面得到服务IBinder对象的引用    private TestServer.MyBinder myBinder;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);    }     public void start(View view)    {        Intent intent=new Intent(this,TestServer.class);        startService(intent);             }    public void stop(View view)    {        Intent intent=new Intent(this,TestServer.class);        stopService(intent);    }         public void bind(View view)    {        Intent intent=new Intent(this,TestServer.class);        /**         * intent 激活服务意图         * conn 代理人中间人对象,用来跟服务建立联系不能为空         * BIND_AUTO_CREATE 在绑定服务的时候 如果服务不存在就自动创建         */        //步骤1:采用绑定的方式开启服务        bindService(intent, new MyConn(), BIND_AUTO_CREATE);             }    public void unbind(View view)    {        Intent intent=new Intent(this,TestServer.class);             }         public void change(View view)    {        /**         * 由于系统框架在创建服务的时候会创建与之对应的上下文         * 下面的代码是直接new对象         * TestService service=new TestService();         * service.changeSing("月亮之上");         */        //步骤5:利用IBinder对象间接调用服务里面的方法        myBinder.callchangeSing("月亮至上");             }         private class MyConn implements ServiceConnection{                 //在服务被成功绑定的时候调用的方法        @Override        public void onServiceConnected(ComponentName name, IBinder service) {            // TODO Auto-generated method stub            System.out.println("testserver代理人返回回来了");            //步骤3:服务返回的IBinder对象会被传递给MyConn的回调方法            myBinder=(MyBinder)service;                     }                 //在服务失去绑定的时候调用的方法  只有程序异常终止才会调用该方法        @Override        public void onServiceDisconnected(ComponentName name) {            // TODO Auto-generated method stub                     }    }}
3、编写TestServer服务
package com.hyzhou.testservice;import android.app.Service;import android.content.Intent;import android.os.Binder;import android.os.IBinder;import android.widget.Toast; /** * */ /** * @author hyzhou * * 2013-12-10 */public class TestServer extends Service {          @Override    public IBinder onBind(Intent intent) {        // TODO Auto-generated method stub                 System.out.println("服务被成功的绑定了------...");        //步骤2:服务在成功绑定的时候会调用onBind方法,返回一个IBinder对象        return new MyBinder();    }    public  class MyBinder extends Binder{        @SuppressWarnings("unused")        public void callchangeSing(String name)        {            changeSing(name);        }    }         @Override    public void onCreate() {        // TODO Auto-generated method stub        super.onCreate();        System.out.println("开启服务------...");    }              @Override    public void onDestroy() {        // TODO Auto-generated method stub        super.onDestroy();        System.out.println("销毁服务------...");    }         public void changeSing(String name)    {        Toast.makeText(getApplicationContext(), "切换至当前的音乐"+name, 0).show();    } }


更多相关文章

  1. Android(安卓)双进程守护
  2. Android学习札记18:Drawable中的setDither()方法
  3. Android原生和H5交互;Android和H5混合开发;WebView点击H5界面跳转
  4. Unity—Android通讯
  5. Android常用资源总结
  6. Android(安卓)面试经验 - Android(安卓)进程间的通信
  7. Android(安卓)Interface Definition Language (AIDL) android接
  8. Android消息循环实现原理分析
  9. Android(安卓)内存泄漏优化汇总

随机推荐

  1. Android Intent调用方法总结
  2. Android拍照,照片会自己旋转
  3. Android平台特性
  4. 【Google Voice】Android 轻松实现语音识
  5. Android DrawerLayout 高仿QQ5.2双向侧滑
  6. 如何使用Jdbc和Servlet操作Mysql数据库,编
  7. Android 瘦身之道 ---- so文件
  8. Android系统构架简介
  9. Android复合文本SpannableString使用总结
  10. Android中使用硬盘模拟SD卡