| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- package com.ht.gate;
- import android.app.Service;
- import android.content.ComponentName;
- import android.content.Context;
- import android.content.Intent;
- import android.content.ServiceConnection;
- import android.os.IBinder;
- import android.os.RemoteException;
- import android.util.Log;
- import android.widget.Toast;
- public class RemoteService extends Service {
- private static final String TAG = RemoteService.class.getName();
- private MyBinder mBinder;
- private ServiceConnection connection = new ServiceConnection() {
- @Override
- public void onServiceConnected(ComponentName name, IBinder service) {
- IMyAidlInterface iMyAidlInterface = IMyAidlInterface.Stub.asInterface(service);
- try {
- Log.e(TAG, "connected with " + iMyAidlInterface.getServiceName());
- } catch (RemoteException e) {
- e.printStackTrace();
- }
- }
- @Override
- public void onServiceDisconnected(ComponentName name) {
- Log.e(TAG, "onServiceDisconnected: 链接断开,重新启动 LocalService");
- Toast.makeText(RemoteService.this, "链接断开,重新启动 LocalService", Toast.LENGTH_LONG).show();
- startService(new Intent(RemoteService.this, LocalService.class));
- bindService(new Intent(RemoteService.this, LocalService.class), connection, Context.BIND_IMPORTANT);
- }
- };
- public RemoteService() {
- }
- @Override
- public int onStartCommand(Intent intent, int flags, int startId) {
- Log.e(TAG, "onStartCommand: RemoteService 启动");
- Toast.makeText(this, "RemoteService 启动", Toast.LENGTH_LONG).show();
- bindService(new Intent(this, LocalService.class), connection, Context.BIND_IMPORTANT);
- return START_STICKY;
- }
- @Override
- public IBinder onBind(Intent intent) {
- mBinder = new MyBinder();
- return mBinder;
- }
- private class MyBinder extends IMyAidlInterface.Stub {
- @Override
- public String getServiceName() throws RemoteException {
- return RemoteService.class.getName();
- }
- @Override
- public void basicTypes(int anInt, long aLong, boolean aBoolean, float aFloat, double aDouble, String aString) throws RemoteException {
- }
- }
- }
|