博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android 通过接口的方式去调用服务里面的方法
阅读量:6256 次
发布时间:2019-06-22

本文共 2338 字,大约阅读时间需要 7 分钟。

public class MainActivity extends AppCompatActivity {    private MyConn conn;    private Iservice myBinder; // 我定义的中间人对象     @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);         Intent intent = new Intent(this, DemoService.class);        //连接服务        conn = new MyConn();        bindService(intent, conn, BIND_AUTO_CREATE);    }     //点击按钮调用服务里面banzheng的方法    public void click(View v) {        myBinder.callBanZheng(100000);    }     //监视服务的状态    private class MyConn implements ServiceConnection{        //当服务连接成功调用        @Override        public void onServiceConnected(ComponentName name, IBinder service) {            //获取中间人对象            myBinder = (Iservice) service;        }        //失去连接        @Override        public void onServiceDisconnected(ComponentName name) {         }    }     @Override    protected void onDestroy() {        //当Activity销毁的时候 解绑服务        unbindService(conn);        super.onDestroy();    }}
public class DemoService extends Service {    private static final String TAG = "jojp";    public DemoService() {    }    // 把我定义的中间人对象返回    @Override    public IBinder onBind(Intent intent) {        // TODO: Return the communication channel to the service.//        throw new UnsupportedOperationException("Not yet implemented");        return new MyBinder();    }     //banzheng的方法    public void banZheng(int money) {        if (money > 1000) {            Toast.makeText(getApplicationContext(), "banZheng", Toast.LENGTH_SHORT).show();        } else {            Toast.makeText(getApplicationContext(), "banZhengFail", Toast.LENGTH_SHORT).show();        }    }     //打麻将的方法    public void playMaJiang() {        Log.d(TAG, "playMaJiang: ");    }    //洗桑拿的方法    public void sangNa() {        Log.d(TAG, "sangNa: ");    }     private class MyBinder extends Binder implements Iservice{        @Override        public void callBanZheng(int money) {            //调用banzheng的方法            banZheng(money);        }        public void callPlayMaJiang() {            //调用playMaJiang的方法            playMaJiang();        }        public void callSangNa() {            //调用洗桑拿的方法            sangNa();        }    }}
public interface Iservice {    //把领导想暴露的方法都定义在接口里    public void callBanZheng(int money);}

 

转载地址:http://bwxsa.baihongyu.com/

你可能感兴趣的文章
对Map按key和value分别排序
查看>>
知名第三方编译版tete009 Firefox 24.0
查看>>
java反射生成ORM
查看>>
堆和栈的区别
查看>>
生成CSV文件后再将CSV文件导入到mysql
查看>>
Html.DropDownListFor练习(2)
查看>>
Eclipse+Maven创建webapp项目<一>
查看>>
筑巢引凤
查看>>
C# console application executing macro function
查看>>
dll的概念 dll导出变量 函数 类
查看>>
HDUOJ------------1051Wooden Sticks
查看>>
Winform开发框架之权限管理系统改进的经验总结(4)--用户分级管理
查看>>
SQLSERVER PRINT语句的换行
查看>>
Web Service 的工作原理
查看>>
tesseract ocr文字识别Android实例程序和训练工具全部源代码
查看>>
嵌入式操作系统的调试
查看>>
DroidPHP-A PHP Webserver for android
查看>>
iOS用全局宏的概念理解xcode中的设置 preprocessor macros
查看>>
浮沉乱世,一些话对自己说
查看>>
桌面应用框架 OneRing
查看>>