android - Pourquoi la méthode onBind remplacée du service ne peut-elle pas être appelée manuellement dans l'activité?
PHP中文网
PHP中文网 2017-05-16 13:21:50
0
2
596

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中文网

认证高级PHP讲师

répondre à tous(2)
阿神

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
Ty80

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.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal