开发学院手机开发Android 开发 Android 实例展现如何不同程序间的Serivce调用 阅读

Android 实例展现如何不同程序间的Serivce调用

 2010-09-15 00:10:00 来源:WEB开发网   
核心提示:@Overridepublic void onServiceConnected(ComponentName name, IBinder service) {Log.d("ReadActivity", "onServiceConnected");dsb = IDemoService

@Override

public void onServiceConnected(ComponentName name, IBinder service) {

Log.d("ReadActivity", "onServiceConnected");

dsb = IDemoServiceBinder.Stub.asInterface(service);

}

@Override

public void onServiceDisconnected(ComponentName name) {

dsb = null;

}

};

绑定一个服务使用的代码

Intent s = new Intent("com.shinestudio.demo.demoservice");

bindService(s, sc, Context.BIND_AUTO_CREATE);

解绑

unbindService(sc);

使用接口中的方法,因为使用aidl的方法是异步的,最好不要绑定完就使用,而且在使用前一定要判断,防止NullPointerException。而且aidl方法会抛出异常,请处理异常。

if (dsb != null) {

try {

tv.setText(dsb.getPushString());

} catch (RemoteException e) {

e.printStackTrace();

}

}

项目完整的代码 接上文

DemoService

package com.shinestudio.demo.service;

import android.app.Notification;

import android.app.NotificationManager;

import android.app.PendingIntent;

import android.app.Service;

import android.content.Intent;

import android.os.Bundle;

import android.os.IBinder;

import android.os.RemoteException;

import android.util.Log;

public class DemoService extends Service {

private int data = 0;

private String pushData1;

private String pushData2;

private NotificationManager nm;

private IDemoServiceBinder.Stub dBinder = new IDemoServiceBinder.Stub() {

@Override

public String getPushString() throws RemoteException {

return pushData1;

}

@Override

public void setPushString(String str) throws RemoteException {

pushData1 = str;

上一页  1 2 3 4 5 6 7 8  下一页

Tags:Android 实例 展现

编辑录入:coldstar [复制链接] [打 印]
[]
  • 好
  • 好的评价 如果觉得好,就请您
      0%(0)
  • 差
  • 差的评价 如果觉得差,就请您
      0%(0)
赞助商链接