• logo categorie
    RESOLU

    Exemples de code démontrant un service AIDL


    Bonjour
    Je voudrais l'exemple de code démontrant un service AIDL sous Android?
    Android
    Service
    AIDL
    Android
    utilisateur
    Justine
    Posté le : 9 Janvier à 10:17
    30 276 vues

  • 0
    Noa
    Posté le : 9 Janvier à 10:21
    Bonjour
    Voici l'exemple de code démontrant un service AIDL sous Android:
    public static class Binding extends Activity {
        /** The primary interface we will be calling on the service. */
        IRemoteService mService = null;
        /** Another interface we use on the service. */
        ISecondary mSecondaryService = null;
    
        Button mKillButton;
        TextView mCallbackText;
    
        private boolean mIsBound;
    
       
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
    
            setContentView(R.layout.remote_service_binding);
    
            // Watch for button clicks.
            Button button = (Button)findViewById(R.id.bind);
            button.setOnClickListener(mBindListener);
            button = (Button)findViewById(R.id.unbind);
            button.setOnClickListener(mUnbindListener);
            mKillButton = (Button)findViewById(R.id.kill);
            mKillButton.setOnClickListener(mKillListener);
            mKillButton.setEnabled(false);
    
            mCallbackText = (TextView)findViewById(R.id.callback);
            mCallbackText.setText("Not attached.");
        }
    
    
        private ServiceConnection mConnection = new ServiceConnection() {
            public void onServiceConnected(ComponentName className,
                    IBinder service) {
                
                mService = IRemoteService.Stub.asInterface(service);
                mKillButton.setEnabled(true);
                mCallbackText.setText("Attached.");
    
                
                try {
                    mService.registerCallback(mCallback);
                } catch (RemoteException e) {
                    .
                }
    
                Toast.makeText(Binding.this, R.string.remote_service_connected,
                        Toast.LENGTH_SHORT).show();
            }
    
            public void onServiceDisconnected(ComponentName className) {
            
                mService = null;
                mKillButton.setEnabled(false);
                mCallbackText.setText("Disconnected.");
    
                // As part of the sample, tell the user what happened.
                Toast.makeText(Binding.this, R.string.remote_service_disconnected,
                        Toast.LENGTH_SHORT).show();
            }
        };
    
       
        private ServiceConnection mSecondaryConnection = new ServiceConnection() {
            public void onServiceConnected(ComponentName className,
                    IBinder service) {
                
                mSecondaryService = ISecondary.Stub.asInterface(service);
                mKillButton.setEnabled(true);
            }
    
            public void onServiceDisconnected(ComponentName className) {
                mSecondaryService = null;
                mKillButton.setEnabled(false);
            }
        };
    
        private OnClickListener mBindListener = new OnClickListener() {
            public void onClick(View v) {
                
                bindService(new Intent(IRemoteService.class.getName()),
                        mConnection, Context.BIND_AUTO_CREATE);
                bindService(new Intent(ISecondary.class.getName()),
                        mSecondaryConnection, Context.BIND_AUTO_CREATE);
                mIsBound = true;
                mCallbackText.setText("Binding.");
            }
        };
    
        private OnClickListener mUnbindListener = new OnClickListener() {
            public void onClick(View v) {
                if (mIsBound) {
                    // If we have received the service, and hence registered with
                    // it, then now is the time to unregister.
                    if (mService != null) {
                        try {
                            mService.unregisterCallback(mCallback);
                        } catch (RemoteException e) {
                            
                        }
                    }
    
                    // Detach our existing connection.
                    unbindService(mConnection);
                    unbindService(mSecondaryConnection);
                    mKillButton.setEnabled(false);
                    mIsBound = false;
                    mCallbackText.setText("Unbinding.");
                }
            }
        };
    
        private OnClickListener mKillListener = new OnClickListener() {
            public void onClick(View v) {
                // To kill the process hosting our service, we need to know its
                // PID.  Conveniently our service has a call that will return
                // to us that information.
                if (mSecondaryService != null) {
                    try {
                        int pid = mSecondaryService.getPid();
                
                        Process.killProcess(pid);
                        mCallbackText.setText("Killed service process.");
                    } catch (RemoteException ex) {
              
                        Toast.makeText(Binding.this,
                                R.string.remote_call_failed,
                                Toast.LENGTH_SHORT).show();
                    }
                }
            }
        };
    
      
    
        
        private IRemoteServiceCallback mCallback = new IRemoteServiceCallback.Stub() {
             
            public void valueChanged(int value) {
                mHandler.sendMessage(mHandler.obtainMessage(BUMP_MSG, value, 0));
            }
        };
    
        private static final int BUMP_MSG = 1;
    
        private Handler mHandler = new Handler() {
            @Override public void handleMessage(Message msg) {
                switch (msg.what) {
                    case BUMP_MSG:
                        mCallbackText.setText("Received from service: " + msg.arg1);
                        break;
                    default:
                        super.handleMessage(msg);
                }
            }
    
        };
    }
    
  • ⇒ Si vous êtes ici c'est que le sujet vous intéresse ^^
    Inscrivez-vous sur Oyant, apportez votre contribution sur ce sujet et gagnez de l'argent :

    Inscription
    Répondre
  • logo categorie
    RESOLU

    La façon dont la classe Rect implémente le protocole parcelable

    Bonjour
    Savez-vous la façon dont la classe Rect implémente le protocole parcelable d'Android?
    Android
    Classe
    Rect
    Parcelable
    Android
  • logo categorie
    RESOLU

    Exemple d'implémentation d'une interface appelée IRemoteService

    Salut
    Avez-vous l'exemple d'implémentation d'une interface appelée IRemoteService sous Android?
    Android
    Interface
    IRemoteService
    Android
  • logo categorie
    RESOLU

    Exemple d'interface de service

    Bonjour
    Je voudrais s'il vous plaît un exemple d'interface de service sous Android?
    Android
    Interface
    Service
    Android
  • logo categorie
    RESOLU

    Code qui permet au client de se connecte au service en étendant la classe Binder

    Bonjour
    Quel est le code qui permet au client de se connecte au service en étendant la classe Binder sous Android?
    Android
    Client
    Service
    Binder
    Android
  • logo categorie
    RESOLU

    Classe pour interagir avec l'interface principale du service

    Bonjour
    Avez-vous l'exemple de la classe pour interagir avec l'interface principale du service sous Android?
    Android
    Classe
    Interface
    Service
    Android
  • logo categorie
    RESOLU

    Créer un messager sur la base du IBinder

    Bonjour
    J'aimerais savoir le code qui permet de créer un messager sur la base du IBinder sous Android?
    Android
    Messager
    IBinder
    Android
  • logo categorie
    RESOLU

    Envoyer des messages au service

    Bonjour
    S'il vous plaît quel est le code qui permet d'envoyer des messages au service sous Android?
    Android
    Messages
    Service
    Android
  • logo categorie
    RESOLU

    Gestionnaire des messages entrants des clients

    Bonjour
    S'il vous plaît avez-vous l'exemple de gestionnaire des messages entrants des clients sous Android?
    Android
    Messages
    Clients
    Android
  • logo categorie
    RESOLU

    Exemple de service simple qui utilise une interface Messenger

    Bonjour
    Je voudrais un exemple de service simple qui utilise une interface Messenger sous Android?
    Android
    Service
    Interface
    Messenger
    Android
  • logo categorie
    RESOLU

    Appelle getRandomNumber() quand un bouton est cliqué

    Bonjour
    Avez-vous un exemple sur l'appelle getRandomNumber() quand un bouton est cliqué sous Android?
    Android
    getRandomNumber()
    Android
  • logo categorie
    RESOLU

    Un service qui offre aux clients l'accès aux méthodes dans le service

    Bonjour
    Savez-vous comment un service qui offre aux clients l'accès aux méthodes dans le service à travers une mise en œuvre Binder sous Android?
    Android
    Méthodes
    Service
    Binder
    Android
  • logo categorie
    RESOLU

    Obtenir looper du HandlerThread

    Bonjour
    J'aimerais savoir comment faire pour obtenir looper du HandlerThread sous Android?
    Android
    Looper
    HandlerThread
    Android
  • logo categorie
    RESOLU

    Démarrer le fil conducteur du service

    Bonjour
    Savez-vous s'il vous plaît comment faire pour démarrez le fil conducteur du service sous Android?
    Android
    Conducteur
    Android
  • logo categorie
    RESOLU

    Implémentation de la classe de service

    Bonjour
    Avez-vous un exemple sur l'implémentation de la classe de service sous Android?
    Android
    Classe
    Service
    Android
  • logo categorie
    RESOLU

    Constructeur avec un nom pour le thread de travail

    Bonjour
    Je voudrais l'exemple d'un constructeur avec un nom pour le thread de travail sous Android?
    Android
    Constructeur
    Thread
    Android
  • logo categorie
    RESOLU

    Mettre en place une activité en tant que point de départ

    Bonjour
    savez-vous comment mettre en place une activité en tant que point de départ sous Android?
    Android
    Activité
    Android
  • logo categorie
    RESOLU

    Les principaux indicateurs d'intention

    Bonjour
    Quels sont les principaux indicateurs d'intention utiliser sous Android?
    Android
    Indicateurs
    Intention
    Android
  • logo categorie
    RESOLU

    Créer et retourner une CursorLoader

    Bonjour
    J'aimerais savoir comment faire pour créer et retourner une CursorLoader sous Android?
    Android
    CursorLoader
    Android
  • logo categorie
    RESOLU

    Redémarrer le chargeur pour faire une nouvelle requête

    Bonjour
    Comment faire pour redémarrer le chargeur pour faire une nouvelle requête sous Android?
    Android
    Chargeur
    Requête
    Android
  • logo categorie
    RESOLU

    Afficher les données chargées

    Bonjour
    J'ai besoin de savoir quel est le code qui permet d'afficher les données chargées sous Android?
    Android
    Données
    Android
  • Veuillez vous connecter pour profiter pleinement de toutes les fonctionnalités de Oyant.
    Connexion
    Inscription

    Poster une question

    AnimauxApplicationsArnaquesAutres langagesBases de donnéesBeauté et ModeC et C++Cartes de voeux, lettres, poèmes et discoursCMS (Système de gestion de contenu)CollectionCuisineCultureDémarches administrativesDivertissementDotnetDroitEmploiEmploi et études en informatiqueEnseignementEntrepriseEnvironnementEvénementsFinanceGénéral développementImmobilier, logement et urbanisme    JavaLanguesLogicielsMétiersNouvelles technologiesPHPPrestations socialesRéservé aux adultesSantéSportSystèmesTransportsVie pratiqueWebmasters - Développement web 3.013 Utlisateurs parcourent Oyant en ce moment