天天看点

Android通过接口方式调用服务里面的方法

一共三个类和一个布局
           
public class MainActivity extends ActionBarActivity {

    private MyConn myConn;
	private Iservice myBinder;
	@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        Intent intent=new Intent(this,BanZhengService.class);
        
        myConn = new MyConn();
        
        bindService(intent, myConn,BIND_AUTO_CREATE);
    }
    public void click(View v){
    	myBinder.callBanZheng(10000);
    	myBinder.callplayMajiang();
    }
    private class MyConn implements ServiceConnection{



		@Override
		public void onServiceConnected(ComponentName arg0, IBinder arg1) {
			myBinder = (Iservice)arg1;
		}

		@Override
		public void onServiceDisconnected(ComponentName arg0) {
			// TODO Auto-generated method stub
			
		}
    	
    }
    @Override
    protected void onDestroy() {
    	unbindService(myConn);
    	super.onDestroy();
    }
}
           
public class BanZhengService extends Service {

	@Override
	public IBinder onBind(Intent arg0) {
		return new MyBinder();
	}
	public void banZheng(int money){
		if(money>1000)
		{
			Toast.makeText(getApplicationContext(),"办事",1).show();
		}else{
			Toast.makeText(getApplicationContext(),"不办事",1).show();
			
		}
	}
	public void playMajiang(){
		System.out.println("打麻将");
	}
	private class MyBinder extends Binder implements Iservice{
		public void callBanZheng(int money){
			banZheng(money);
		}
		public void callplayMajiang(){
			playMajiang();
		}

	}
}
           
public interface Iservice {
	public void callBanZheng(int money);
	public void callplayMajiang();
}
           
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <Button
        android:id="@+id/button1"
        android:onClick="click"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:layout_marginBottom="124dp"
        android:text="办事" />

</RelativeLayout>
           

继续阅读