一:数据提供端代码(数据提供APP)

1.java代码:Service

package com.example.remoteaidi;import com.example.remoteaidi.aidl.StudentAidl;import android.app.Service;import android.content.Intent;import android.os.IBinder;import android.os.RemoteException;public class StudentService extends Service {private String[] studentNo = {"王1","2","王3","王4","王月4","宋6"};private IBinder binder = new StudentQueryBinder();@Overridepublic IBinder onBind(Intent intent) {return binder;}class StudentQueryBinder extends StudentAidl.Stub {@Overridepublic String getStudent(int no) throws RemoteException {int l = studentNo.length;if(l<0) {no = 0;}if(no>=l) {no = l - 1;}return studentNo[no];}}}
aidl文件

package com.example.remoteaidi.aidl;interface StudentAidl {String getStudent(int no);}

清单文件

<?xml version="1.0" encoding="utf-8"?>                                                                              

二:请求端代码

package com.example.aidlclient;import com.example.remoteaidi.aidl.StudentAidl;import android.app.Activity;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.view.View;import android.widget.EditText;import android.widget.TextView;public class MainActivity extends Activity {private ServiceConnectionImpl sci ;private StudentAidl student;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Intent intent = new Intent();intent.setAction("student.query");sci = new ServiceConnectionImpl();bindService(intent, sci, BIND_AUTO_CREATE);}public void queryOnClick(View v) {EditText et_no_text = (EditText) findViewById(R.id.et_no_text);String no = et_no_text.getText().toString();String sname;try {sname = student.getStudent(new Integer(no));TextView tv_no = (TextView) findViewById(R.id.tv_no);tv_no.setText(sname);} catch (NumberFormatException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (RemoteException e) {// TODO Auto-generated catch blocke.printStackTrace();}}class ServiceConnectionImpl implements ServiceConnection {@Overridepublic void onServiceConnected(ComponentName name, IBinder service) {student = StudentAidl.Stub.asInterface(service);}@Overridepublic void onServiceDisconnected(ComponentName name) {student = null;}}@Overrideprotected void onDestroy() {// TODO Auto-generated method stubsuper.onDestroy();if(sci != null) {unbindService(sci);}}}

aidl文件与上一个aidl文件相同

package com.example.remoteaidi.aidl;interface StudentAidl {String getStudent(int no);}


布局文件

        


清单文件
<?xml version="1.0" encoding="utf-8"?>                                                                                    





更多相关文章

  1. Android内核的根文件系统
  2. 开发中常用到的几处代码设置
  3. android获取文件目录
  4. Android代码实现APK文件的安装与卸载
  5. Android 文件实现断点上传
  6. Android 发送短信 源代码
  7. Android 存储方式之文件存储
  8. Android 下载文件 显示进度条

随机推荐

  1. Android View onMeasure 方法
  2. Android 让TextView变成Dialog
  3. Android系统开发之修改调试SystemUI
  4. popWindowdemo
  5. Activity四种启动模式之singleTask应用
  6. Android: Actions for BroadcastReceiver
  7. Android MediaExtractor 浅析
  8. android keymaster
  9. 理解Android进程创建流程(转)
  10. android 全部命令