支付宝

package com.tesy.alipay;

import com.test.alipay.Iservice.Stub;

import android.app.Service;
import android.content.Intent;
import android.os.Binder;
import android.os.IBinder; public class PayService extends Service { //[2]我们定义的中间人对象返回
@Override
public IBinder onBind(Intent intent) {
return new MyBinder();
} //支付宝支付的方法
public boolean pay(String name,String pwd,int money){
System.out.println("1验证用户名和密码 ");
System.out.println("2验证手机是否携带病毒");
System.out.println("3调用C语言 做一些加密处理 "); if ("abc".equals(name)&& "123".equals(pwd)&& money <5000) { return true;
}else {
return false; } } //定义中间人对象
private class MyBinder extends Stub{ //调用支付的方法
@Override
public boolean callPay(String name, String pwd, int money) { return pay(name, pwd, money); } } }
       <service android:name="com.itheima.alipay.PayService">
<intent-filter >
<action android:name="com.itheima.alipay"/>
</intent-filter>
</service>

欢乐斗地主买豆

package com.test.ddz;

import com.test.alipay.Iservice;
import com.test.alipay.Iservice.Stub; import android.os.Bundle;
import android.os.IBinder;
import android.os.RemoteException;
import android.app.Activity;
import android.content.ComponentName;
import android.content.Intent;
import android.content.ServiceConnection;
import android.view.Menu;
import android.view.View;
import android.widget.Toast; public class MainActivity extends Activity { private Myconn conn;
private Iservice iservice; //我们定义的中间人对象 @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); //[1]调用bindService 获取我们定义的中间人对象
Intent intent = new Intent();
intent.setAction("com.itheima.alipay"); conn = new Myconn();
//[2]绑定服务
bindService(intent, conn, BIND_AUTO_CREATE); } //点击按钮 买豆
public void click(View v) { try {
boolean result = iservice.callPay("abcdd", "123", 100); if (result) {
//支付成功
Toast.makeText(getApplicationContext(), "买豆成功", 1).show();
}else { Toast.makeText(getApplicationContext(), "买豆失败", 1).show();
} } catch (RemoteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} private class Myconn implements ServiceConnection{ @Override
public void onServiceConnected(ComponentName name, IBinder service) {
// 获取中间人对象 iservice = Stub.asInterface(service);
} @Override
public void onServiceDisconnected(ComponentName name) { } } @Override
protected void onDestroy() {
//当Activity销毁的时候 解绑服务
unbindService(conn);
super.onDestroy();
} }

aidl的应用场景的更多相关文章

  1. Android之IPC(aidl)

    IPC(Inter-Process Conmunication) 进程间通讯 在同一进程中,各个组件进行通信是十分方便的,普通的函数调用就可以解决:但是,对于处于不同进程中的组件来说,要进行通信,就需 ...

  2. Binder or AIDL的最简单实践

    1.前言: 在Android开发中多进程的合理使用+进程间通信的IPC是一个比较难的点.特别是Android特有的Binder机制,非常复杂,对于应用层开发的初级开发工程师强求深入理解Binder机制 ...

  3. 让我们一起学习如何使用AIDL,它其实并不难(Android)

    前言 该篇文件讲述的是AIDL最基本的使用(创建.调用),关于对于AIDL更深的认识,在后续的随笔中,会持续与大家分享并探讨. 正文 AIDL的定义(什么是AIDL?) AIDL的应用场景(AIDL可 ...

  4. day08 服务

    pasting ]注册电话的监听 tm.listen(new MyPhoneStateListener(), PhoneStateListener.LISTEN_CALL_STATE);     [4 ...

  5. 18_Android中Service的生命周期,远程服务,绑定远程服务,aidl服务调用,综合服务案例,编写一个应用程序调用远程支付宝远程服务场景

    ============================================================================ 服务的生命周期: 一.采用start的方式开始 ...

  6. Android 进程通信机制之 AIDL

    什么是 AIDL AIDL 全称 Android Interface Definition Language,即 安卓接口描述语言.听起来很深奥,其实它的本质就是生成进程间通信接口的辅助工具.它的存在 ...

  7. android service 的各种用法(IPC、AIDL)

    http://my.oschina.net/mopidick/blog/132325 最近在学android service,感觉终于把service的各种使用场景和用到的技术整理得比较明白了,受益颇 ...

  8. AIDL

    在介绍跨程序进程间通信AIDL前,先看一下本程序activity与某个服务是怎么绑定在一起进行交互的. 需求:服务有两个方法.分别是播放音乐与停止播放音乐.该程序的活动要访问这两个方法,在activi ...

  9. Android AIDL SERVICE 双向通信 详解

    http://www.cnblogs.com/punkisnotdead/p/5062631.html 起因 是这个blog 提到了 用webview 的时候 用开启子进程的方式 可以极大避免内存泄露 ...

随机推荐

  1. Git 远程分支常用操作

    # 查看远程仓库推拉地址,分支信息,分支跟踪情况等 git remote show origin # 拉取远程仓库的变更内容到本地 git fetch origin # 拉取并合并仓库的变更内容到本地 ...

  2. Selenium_模拟键盘和鼠标操作(9)

    模拟键盘键盘和鼠标操作主要使用到selenium的keys包,源码如下 class Keys(object): """ Set of special keys codes ...

  3. mysql yum无法安装的原因

    今天在centos7 安装mysql时,无法yum安装,报错缺少插件,原因是:在安装centos时选择了别的服务器,重新安装为网页服务器就安装成功. 来自为知笔记(Wiz)

  4. linux 下安装minconda3

    一.关于bashrc目录,此文件是隐藏的,如果要打开此文件需要用: vim /root/.bashrc 二.linux下关于防火墙的命令 1.查看防火墙状态 firewall-cmd --state ...

  5. 在CentOS7上安装 jq

    安装EPEL源: yum install epel-release 安装完EPEL源后,可以查看下jq包是否存在: yum list jq 安装jq: yum -y install jq 命令参考资料 ...

  6. 简单谈谈 TCP/IP

    1.前言 IP 或 ICMP.TCP 或 UDP.TELNET 或 FTP.以及 HTTP 等都属于 TCP/IP 协议. 他们与 TCP 或 IP 的关系紧密,是互联网必不可少的组成部分.TCP/I ...

  7. 转雅虎web前端网站优化 34条军规

    雅虎给出了优化网站加载速度的34条法则(包括Yslow规则22条) 详细说明,下载转发 ponytail 的译文 1.Minimize HTTP Requests 减少HTTP请求 图片.css.sc ...

  8. 浅讲EF高级用法之自定义函数

    介绍 好久没给大家更新文章了,前2个月因家庭原因回到青岛,比较忙所以没有什么时间给大家更新知识分享,这2个月在和同事一起做项目,发现了很多好意思的东西拿出来给大家讲一讲. 正文 大家先来下面这幅图,这 ...

  9. 《剑指offer》面试题54. 二叉搜索树的第k大节点

    问题描述 给定一棵二叉搜索树,请找出其中第k大的节点.   示例 1: 输入: root = [3,1,4,null,2], k = 1 3 / \ 1 4 \   2 输出: 4 示例 2: 输入: ...

  10. flask中错误使用flask.redirect('/path')导致的框架奇怪错误

    我在首页的位置使用了如下代码: import flask @page_index.route('/') def index(): flask.redirect('/pythoncgi/') 结果站点出 ...