问题一: 这是做什么的?
CopyRawtodata.readFromRaw(MainActivity.this, R.raw.ian, "ian.txt");
答:从raw中读取txt
问题二:FBReaderApp这个类之前实例化过吗?,怎么就能轻松得到他的实例?
myFBReaderApp = (FBReaderApp) FBReaderApp.Instance();
答:首先在FBReaderApp中的
protected ZLApplication(SystemInfo systemInfo) {
SystemInfo = systemInfo;
ourInstance = this;
}
从而可以获取到FBReader的实例。
问题三: 这个绑定服务是怎么回事?
getCollection().bindToService(this, null);
答:在实例化FBReader中,需要传入一个BookCollectionShadow对象,然后通过getCollection(),获取到BookCollectionShadow的对象,开启服务绑定创建服务。在BookCollectionShadow类中,实现接口ServiceConnection,并重写onServiceConnected()和onServiceDisconnected()两个方法。在onServiceConnected()中
myInterface = LibraryInterface.Stub.asInterface(service);
获取到所需的数据源。
数据源的来源————LibraryService类
LibraryService类继承service,重写onBind()并返回IBinder 对象,这个对象便是服务提供的数据,对类库数据的操控便可以在App中进行操作。