Service AIDL

来源:互联网 发布:网络监控清单 编辑:程序博客网 时间:2024/05/16 19:48
 AIDL File.
package com.birds.app.arrange;import java.util.Map;import java.util.List;import android.graphics.Bitmap;interface  ImageDownloadService {       int getPID();    Bitmap downloadBitmap(String url);}


实现;

/** *  */package com.birds.app.arrange;import android.app.Service;import android.content.Intent;import android.graphics.Bitmap;import android.os.IBinder;import android.os.Process;import android.os.RemoteException;/** * @author birds *  */public class ImageDownloadServiceImpl extends Service {private MyImageDownload impl = null;@Overridepublic void onCreate() {super.onCreate();impl = new MyImageDownload();}@Overridepublic IBinder onBind(Intent intent) {return impl;}class MyImageDownload extends ImageDownloadService.Stub {@Overridepublic int getPID() throws RemoteException {return Process.myPid();}@Overridepublic Bitmap downloadBitmap(String url) throws RemoteException {             // your code herereturn null;}}}


 

Activity.

 

public class MainActivity extends Activity {private ImageDownloadService impl;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);}private ServiceConnection serviceConn = new ServiceConnection() {@Overridepublic void onServiceConnected(ComponentName name, IBinder service) {impl = ImageDownloadService.Stub.asInterface(service);Log.d("",">>>>Get A Service Instance>>" + impl);}@Overridepublic void onServiceDisconnected(ComponentName name) {}};protected void onResume() {super.onResume();bindService(new Intent(this, ImageDownloadServiceImpl.class),serviceConn, Context.BIND_AUTO_CREATE);}@Overrideprotected void onPause() {super.onPause();unbindService(serviceConn);}protected void onDestroy() {super.onDestroy();}}


 

 


 

 

 

 

 

原创粉丝点击