我们正在创建一个 Activity 以在 Android Jelly Bean 4.1 上查看 PDF 文件,三星 Galaxy S3 默认启动 Polaris Viewer。我们第一次这样做时,它起作用了。但是我们第二次这样做时,我们得到了这个错误:
E/ActivityThread( 6788): Activity
com.infraware.polarisoffice4.viewer.PDFViewerActivity has leaked IntentReceiver com.infraware.polarisoffice4.viewer.PDFViewerActivity$2@4219c850 that was originally registered here. Are you missing a call to unregisterReceiver()?
E/ActivityThread( 6788): android.app.IntentReceiverLeaked: Activity com.infraware.polarisoffice4.viewer.PDFViewerActivity has leaked IntentReceiver com.infraware.polarisoffice4.viewer.PDFViewerActivity$2@4219c850 that was originally registered here. Are you missing a call to unregisterReceiver()?
E/ActivityThread( 6788): at android.app.LoadedApk$ReceiverDispatcher.<init>(LoadedApk.java:792)
E/ActivityThread( 6788): at android.app.LoadedApk.getReceiverDispatcher(LoadedApk.java:593)
E/ActivityThread( 6788): at android.app.ContextImpl.registerReceiverInternal(ContextImpl.java:1254)
E/ActivityThread( 6788): at android.app.ContextImpl.registerReceiver(ContextImpl.java:1241)
E/ActivityThread( 6788): at android.app.ContextImpl.registerReceiver(ContextImpl.java:1235)
E/ActivityThread( 6788): at android.content.ContextWrapper.registerReceiver(ContextWrapper.java:372)
E/ActivityThread( 6788): at com.infraware.polarisoffice4.viewer.PDFViewerActivity.onCreate(PDFViewerActivity.java:109)
E/ActivityThread( 6788): at android.app.Activity.performCreate(Activity.java:5206)
E/ActivityThread( 6788): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1083)
E/ActivityThread( 6788): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2064)
E/ActivityThread( 6788): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2125)
E/ActivityThread( 6788): at android.app.ActivityThread.access$600(ActivityThread.java:140)
E/ActivityThread( 6788): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1227)
E/ActivityThread( 6788): at android.os.Handler.dispatchMessage(Handler.java:99) E/ActivityThread( 6788): at android.os.Looper.loop(Looper.java:137)
E/ActivityThread( 6788): at android.app.ActivityThread.main(ActivityThread.java:4898)
E/ActivityThread( 6788): at java.lang.reflect.Method.invokeNative(Native Method)
E/ActivityThread( 6788): at java.lang.reflect.Method.invoke(Method.java:511)
E/ActivityThread( 6788): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1006)
E/ActivityThread( 6788): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:773)
E/ActivityThread( 6788): at dalvik.system.NativeStart.main(Native Method)
如果我们安装 Adobe Reader,那么我们不会得到这个异常(即使我们仍然在对话框中选择 Polaris 作为查看器)。如果我们卸载 Adobe Reader,异常会再次出现。
如果我们终止进程并重新启动,我们将能够在 Polaris 中查看一个 PDF,但是当我们查看第二个 PDF 时会出现异常。(我们查看什么 PDF 无关紧要:我们查看的第一个将打开,第二个则不会。)
有什么建议么?