Heim  >  Fragen und Antworten  >  Hauptteil

android - Warum kann die überschriebene Methode onBind des Dienstes in der Aktivität nicht manuell aufgerufen werden?

Es gibt eine Methode onBind in der Service-Klasse in Android. Warum können wir diese Methode nicht aktiv aufrufen, nachdem wir ein von der Service-Klasse in MainActivity geerbtes Objekt erstellt haben? Und die Zugriffsberechtigung der onBind-Methode ist ebenfalls öffentlich. Nachdem ich das MyService-Klassenobjekt in MainActivity erhalten hatte, stellte ich fest, dass die onBind-Methode nicht aufgerufen werden konnte.

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 Tage vor566

Antworte allen(2)Ich werde antworten

  • 阿神

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

    尽管你对Service的使用是不对的,但抛开这些,你创建 MyService,然后直接调用 myService.onBind(null),应该在Java使用层面,没有问题。此处不谈 DownloadBinder

    Antwort
    0
  • PHP中文网

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

    举例说明:

    1. Google和你都能组装一台Android手机;

    2. 你自己组装的, 玩坏了只能自己修理;

    3. Google出售的, 会纳入品牌的保修政策.

    四大组件是Android应用运行的基础, 是由系统维护管理的. 任性创建四大组件的对象也不是不可以, 只是没有大多意义.

    Antwort
    0
  • StornierenAntwort