Android Service的知识点整理一、Service\八、Demo(1) 实现一个aidl文件*这时的gen里边会自动生成一个xxxser
Android Service的知识点整理
一、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);
