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;
}
}
尽管你对Service的使用是不对的,但抛开这些,你创建 MyService,然后直接调用 myService.onBind(null),应该在Java使用层面,没有问题。此处不谈 DownloadBinder
四大组件是Android应用运行的基础, 是由系统维护管理的. 任性创建四大组件的对象也不是不可以, 只是没有大多意义.