AIDL的小demo
来源:互联网 发布:三菱plcfx3u编程手册 编辑:程序博客网 时间:2024/05/26 02:19
首先服务端的代码.
aidl:
package com.example.aidlserver;interface IRemote{ int add(int a, int b);}
MainActivity类的代码:
package com.example.aidlserver;import android.os.Bundle;import android.app.Activity;import android.view.Menu;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.activity_main, menu);return true;}}
ArithmeticService类的代码:
package com.example.aidlserver;import android.app.Service;import android.content.Intent;import android.os.IBinder;import android.os.RemoteException;public class ArithmeticService extends Service{@Overridepublic IBinder onBind(Intent intent) {// TODO Auto-generated method stubreturn mBinder;}/** * IRemote defnition is available here */private final IRemote.Stub mBinder = new IRemote.Stub() {@Overridepublic int add(int a, int b) throws RemoteException {// TODO Auto-generated method stubreturn (a + b);}};}接下来是客户端的代码:
同上:aidl代码:
package com.example.aidlserver;interface IRemote{ int add(int a, int b);}MainActivity类代码:
package com.example.aidlclient;import android.app.Activity;import android.app.Service;import android.content.ComponentName;import android.content.Intent;import android.content.ServiceConnection;import android.os.Bundle;import android.os.IBinder;import android.os.RemoteException;import android.util.Log;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.TextView;import android.widget.Toast;import com.example.aidlserver.IRemote;public class MainActivity extends Activity implements OnClickListener {EditText mFirst,mSecond;Button mAdd,mSubtract,mClear;TextView mResultText;protected IRemote mService;ServiceConnection mServiceConnection;/** Called when the activity is first created. */@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mFirst = (EditText) findViewById(R.id.firstValue);mSecond = (EditText) findViewById(R.id.secondValue); mResultText = (TextView) findViewById(R.id.resultText);mAdd = (Button) findViewById(R.id.add);mAdd.setOnClickListener(this);initConnection();}void initConnection(){ mServiceConnection = new ServiceConnection() {@Overridepublic void onServiceDisconnected(ComponentName name) {// TODO Auto-generated method stubmService = null;Toast.makeText(getApplicationContext(), "no", Toast.LENGTH_SHORT).show();Log.d("IRemote", "Binding - Service disconnected");}@Overridepublic void onServiceConnected(ComponentName name, IBinder service){// TODO Auto-generated method stubmService = IRemote.Stub.asInterface((IBinder) service);Toast.makeText(getApplicationContext(), "yes", Toast.LENGTH_SHORT).show();Log.d("IRemote", "Binding is done - Service connected");}};if(mService == null){Intent it = new Intent();it.setAction("com.remote.service.CALCULATOR");//binding to remote servicebindService(it, mServiceConnection, Service.BIND_AUTO_CREATE);}}protected void onDestroy() {super.onDestroy();unbindService(mServiceConnection);};@Overridepublic void onClick(View v) {// TODO Auto-generated method stubswitch(v.getId()){case R.id.add:{int a = Integer.parseInt(mFirst.getText().toString());int b = Integer.parseInt(mSecond.getText().toString());try{mResultText.setText("Result -> Add ->"+mService.add(a,b));Log.d("IRemote", "Binding - Add operation");} catch (RemoteException e) {// TODO Auto-generated catch blocke.printStackTrace();}}break; }}}源代码:http://download.csdn.net/detail/asfg5369/9527935
0 0
- AIDL的小demo
- AIDL的简单Demo
- Android的AIDL 解释Demo
- 基于AndroidN的AIDL Demo
- AIDL demo
- 初识Android之(二)- 实现Service AIDL小Demo
- Android进程间通信AIDL的demo
- ajax小的DEMO
- listView的小demo
- ResultSetExtractor 的小demo
- nodejs的小demo
- s2sh的小demo
- 摇一摇听歌的小Demo
- 多线程的小demo
- Zxing小的demo
- HttpURLConnection的小Demo
- AIDL简单使用Demo
- android aidl demo
- 影响到Spark输出RDD分区的操作函数
- 【Leetcode】Minimum Height Trees
- 【Leetcode】Course Schedule
- 2016年上半年软考总结
- 【Leetcode】Course Schedule II
- AIDL的小demo
- 数组
- Apache Flink数据流的Fault Tolerance机制
- 一个php文件实现打印金字塔
- Python流程控制
- 表情识别数据集整理
- VS2013 MVC 4.0 无法添加服务引用,可以配置,但是无法生成引用类,在对象管理器里查找不到对应类,请问是何原因造成,如何解决
- WCF服务寄宿及调用
- SQLite数据库基本使用(swift)