Android Service的知识点收拾

Android Service的知识点整理一、Service\八、Demo(1) 实现一个aidl文件*这时的gen里边会自动生成一个xxxser

Android Service的知识点整理

一、Service

Android Service的知识点收拾Android Service的知识点收拾\

八、Demo

(1) 实现一个aidl文件

*这时的gen里边会自动生成一个xxxservice文件

package com.my.app;import com.bootoption.*;import android.app.Activity;import android.content.ComponentName;import android.content.Context;import android.content.Intent;import android.content.ServiceConnection;import android.content.res.Configuration;import android.os.Bundle;import android.os.IBinder;import android.os.RemoteException;import android.util.Log;public class ACTActivity extends Activity {static final String TAG = "RemoteService";    /** Called when the activity is first created. */    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);                this.bindService(new Intent("android.intent.action.bootoption.service"), sc, Context.BIND_AUTO_CREATE);    }                @Overridepublic void onConfigurationChanged(Configuration newConfig) {// TODO Auto-generated method stubsuper.onConfigurationChanged(newConfig);Log.v(TAG, "configuration change");}IBootOptionService is = null;        ServiceConnection sc = new ServiceConnection() {public void onServiceDisconnected(ComponentName name) {// TODO Auto-generated method stubLog.v(TAG, "onServiceDisconnected");is = null;}public void onServiceConnected(ComponentName name, IBinder service) {// TODO Auto-generated method stubLog.v(TAG, "onServiceConnected");//is = (IBootOptionService.Stub)service;is = IBootOptionService.Stub.asInterface(service);if (is != null) {try {is.setBlackList(null);} catch (RemoteException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}};}

(5)总结,本地调用与远程调用的实现区别就在于:

*本地调用时,在onServiceConnected方法中是这样的:

private IBootOptionService.Stub bos = null;

......

bos = (IBootOptionService.Stub)service;

*远程调用时,在onServiceConnected方法中是这样的:

IBootOptionService is = null;

......

is = IBootOptionService.Stub.asInterface(service);