ZLLibrary包下的core子包提供了要使用的各个抽象类,如ZLApplication。
ZLAndroidApplication 本应用的Application
其实例化了三个类,分别做数据库,图片,library的操作,这些类并未使用,但我们可以使用它们。
数据库,首先创建或读取数据库,如果是新建则根据版本进行版本兼容,初始化增删改查的语句以供使用。(此处是通过构造方法的方式进行初始化的)
Bug的处理
自己捕获异常,并处理,当发生无法捕捉的异常(如运行时异常时)会转到这个Handler执行。
Thread.setDefaultUncaughtExceptionHandler( new UncaughtExceptionHandler(this) |
这里的UncaughtExceptionHandler就是异常处理类(继承自同名类)
在这个里面,我们可以开启一个activity用于处理和显示页面
该Activity配置如下:
<activity android:name="org.geometerplus.android.fbreader.crash.FixBooksDirectoryActivity" android:configChanges="orientation|keyboardHidden" android:process=":crash" android:theme="@android:style/Theme.Dialog" > <intent-filter> <action android:name="android.fbreader.action.CRASH" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="CachedCharStorageException" /> </intent-filter> </activity> |
使用的是action+Uri的Intent方式,如果能够找到解决方案则进入Activity
如果不行,则进入BugReportActivity。
<activity android:name=".library.BugReportActivity" android:configChanges="orientation|keyboardHidden" android:label="FBReader crash" android:process=":crash" /> |
FBReader基础------------ZLAndroidActivity
该类是FBReader的父类,实现功能如下:
·转屏判断
·亮度判断
·电量判断
·wakeLock
从使用的View可以知道,该Activity指定的layout为R.layout.main,其主要操作的就是org.geometerplus.zlibrary.ui.android.view.ZLAndroidWidget
在org.geo.meterplus.zlibrary.ui.android.library包下,
进阶--FBReader
onCreate中设置占据屏幕大小,添加功能(action),添加3个popup到FBreaderApp。
onStart中检查屏幕大小是否符合,不符重开activity,
为Oncreate中添加的3个popup设置位置
ZLTreeResource