安卓中的服務類別Service裡面有一個方法onBind,為何不能在MainActivity中建立一個繼承自Service類別的物件後,主動呼叫這個方法呢?而onBind方法的存取權也是public,我在MainActivity中取得了MyService類別物件後,發現無法呼叫onBind方法,這是什麼情況呢?
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應用運行的基礎, 是由系統維護管理的. 任性創建四大組件的對像也不是不可以, 只是沒有大多意義.