Maison  >  Questions et réponses  >  le corps du texte

android - Pourquoi la méthode onBind remplacée du service ne peut-elle pas être appelée manuellement dans l'activité?

Il existe une méthode onBind dans la classe de service Service sous Android. Pourquoi ne pouvons-nous pas appeler activement cette méthode après avoir créé un objet hérité de la classe Service dans MainActivity ? Et l'autorisation d'accès de la méthode onBind est également publique.Après avoir obtenu l'objet de classe MyService dans MainActivity, j'ai découvert que la méthode onBind ne pouvait pas être appelée.

public class MyService extends Service
{

    private DownloadBinder mBinder=new DownloadBinder();

    class DownloadBinder extends Binder
    {
        public void startDownload()
        {
            Log.d("MyService","startDownload executed");
        }

        public int getProgress()
        {
            Log.d("MyService","getProgress executed");
            return 0;
        }
    }

    public MyService()
    {
    }

    @Override
    public IBinder onBind(Intent intent)
    {
        return mBinder;
    }

}
PHP中文网PHP中文网2713 Il y a quelques jours567

répondre à tous(2)je répondrai

  • 阿神

    阿神2017-05-16 13:23:50

    Bien que votre utilisation de Service soit erronée, mettez-les de côté, si vous créez MyService puis appelez directement myService.onBind(null), il ne devrait y avoir aucun problème au niveau d'utilisation de Java. Je ne parle pas de DownloadBinder

    ici

    répondre
    0
  • PHP中文网

    PHP中文网2017-05-16 13:23:50

    Exemple :

    1. Google et vous pouvez créer un téléphone Android ;

    2. Vous l'avez assemblé vous-même. S'il casse, vous devez le réparer vous-même ;

    3. Ceux vendus par Google seront inclus dans la politique de garantie de la marque.

    Les quatre composants principaux constituent la base de l'exécution des applications Android et sont maintenus et gérés par le système. Il n'est pas impossible de créer arbitrairement des objets à partir des quatre composants principaux, mais cela n'a pas beaucoup de sens.

    répondre
    0
  • Annulerrépondre