关于Service绑定方法调用

来源:互联网 发布:java删除压缩文件 编辑:程序博客网 时间:2024/06/14 05:53

public  class MainActivity extends Activity{

    private IService myBinder;

    private MyConn conn;

  

   protected  void onCreate(Bundle saveInstanceState){

         super.onCreate(saveInstanceState);

       setContentView(R.layout.activity_main);

    }

  

//这里是点击按钮调用这方法

  public void bind(View view){

      Intent intent = new Intent(this,ChungeService.class);

    //intend激活服务意图,conn代理人中间对象用来跟踪服务建立联系,不能为空  BIND_AUTO_CREATE在绑定服务的时候,如果服务不存在就自动的创建

      conn = new MyConn();


   bindService(intent,conn,BIND_AUTO_CREATE);

   }


    public void unbind(View view){

       unbindService(conn);

      }


private Class MyConn implement ServiceConnection{

   //在服务被成功绑定的时候,调用的方法

    public void onServiceConnected(ComponentName name,IBinder service){

         myBinder = (IService)service;

       }

    

      public void onServiceDisconneted(ComponentNam name){

         }


       //调用服务里的方法

     public  void change(View view){

       myBinder.callChangeSing("lalal");

      }

  }





public interface IService{

     public void callChangerSing(String name);

}




public class ChungeService extends Service{

      public  IBinder onBind(Intent intent){

         MyBinder mybinder = new MyBinder();

      return mybinder;

      }

 

     public void onCreate(){

        super.onCreate();

     }


    public void changeSing(String name){

          Toast.makeText(getApplicationContext(),"开始唱歌"+name,0).show();

     }

 

     private class MyBinder extents Binder implements IService{

            //间接的利用代理人调用春哥的方法

               public void callChangeSing(String name){

                       changeSing(name);

           }

        }

}

  

0 0
原创粉丝点击