Android Jelly Bean 4.1 で PDF ファイルを表示するアクティビティを作成しています。Samsung Galaxy S3 はデフォルトで Polaris Viewer を起動します。これを初めて実行すると、うまくいきます。しかし、2 回目に実行すると、次のエラーが発生します。
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 をアンインストールすると、例外が再発します。
プロセスを強制終了して再起動すると、1 つの PDF を Polaris で表示できますが、2 つ目の PDF を見ると例外が発生します。(どの PDF を表示しても問題ありません。最初に表示した PDF は開きますが、2 番目の PDF は開きません。)
助言がありますか?