編輯:Android開發實例
1.首先在src目錄下建立一個file,命名為IPerson.aidl
- package com.example.aidldemo;
- interface IPerson {
- void setAge(int age);
- void setName(String name);
- String display();
- }
2.接著要實現這個aidl裡面的方法
- package com.example.aidldemo;
- import android.os.RemoteException;
- public class IPersonImpl extends IPerson.Stub{
- //聲明兩個變量
- private int age;
- private String name;
- @Override
- public void setAge(int age) throws RemoteException {
- this.age=age;
- }
- @Override
- public void setName(String name) throws RemoteException {
- this.name=name;
- }
- @Override
- public String display() throws RemoteException {
- return "name="+name+";age="+age;
- }
- }
3.建立一個service
- package com.example.aidldemo;
- import com.example.aidldemo.IPerson.Stub;
- import android.app.Service;
- import android.content.Intent;
- import android.os.IBinder;
- public class MyRemoteService extends Service {
- private Stub iPerson=new IPersonImpl();
- @Override
- public IBinder onBind(Intent intent) {
- // TODO Auto-generated method stub
- return iPerson;
- }
- }
4.在activity中啟動服務
- package com.example.aidldemo;
- import android.app.Activity;
- import android.content.Intent;
- import android.os.Bundle;
- import android.view.Menu;
- public class MainActivity extends Activity {
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- Intent intent = new Intent();
- // 設置Intent Action 屬性
- intent.setAction("com.example.aidldemo.action.MY_REMOTE_SERVICE");
- // 綁定服務
- startService(intent);
- }
- @Override
- public 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;
- }
- }
5.新建一個項目,把上一個項目中的aidl拷貝到項目中
在activity中實現如下:
- 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.view.Menu;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.widget.Button;
- import android.widget.Toast;
- import com.example.aidldemo.IPerson;
- public class MainActivity extends Activity {
- private IPerson iPerson;
- private Button btn;
- // 實例化ServiceConnection
- private ServiceConnection conn = new ServiceConnection() {
- @Override
- synchronized public void onServiceConnected(ComponentName name, IBinder service) {
- // 獲得IPerson接口
- iPerson = IPerson.Stub.asInterface(service);
- System.out.println("iperson----------:"+iPerson);
- }
- @Override
- public void onServiceDisconnected(ComponentName name) {
- iPerson=null;
- }
- };
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- // 設置當前視圖布局
- setContentView(R.layout.activity_main);
- // 實例化Button
- btn = (Button) findViewById(R.id.button1);
- //為Button添加單擊事件監聽器
- // 實例化Intent
- Intent intent = new Intent("com.example.aidldemo.action.MY_REMOTE_SERVICE");
- // 設置Intent Action 屬性
- bindService(intent, conn, Service.BIND_AUTO_CREATE);
- btn.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- try{
- iPerson.setAge(20);
- iPerson.setName("南瓜餅");
- String msg = iPerson.display();
- // 顯示方法調用返回值
- Toast.makeText(MainActivity.this, msg, Toast.LENGTH_LONG).show();
- }catch (Exception e) {
- e.printStackTrace();
- }
- }
- });
- }
- @Override
- protected void onDestroy()
- {
- // TODO Auto-generated method stub
- unbindService(conn);
- super.onDestroy();
- }
- @Override
- public 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;
- }
- }
目截圖:
csdn下載地址:http://download.csdn.net/detail/wenwei19861106/4879164
在Android 5.0之後引入了MD風格,從而狀態欄沉浸也成為了一種設計習慣。而停留在之Andr
本文實例講述了Android實現兩個ScrollView互相聯動的同步滾動效果代碼。分享給大家供大家參考,具體如下: 最近在做一個項目,用到了兩個ScrollVi
這個是網易新聞的主界面,我們知道底部可以用tabhost實現,這個很容易,我們在其他軟件中也會經常用到。 至於頂部的滑動條,個人感覺還是比較漂亮的所以今天也模仿了
JSON代表JavaScript對象符號。它是一個獨立的數據交換格式,是XML的最佳替代品。本章介紹了如何解析JSON文件,並從中提取所需的信息。Android提供了四個