2011-12-06 1 views
0

以下に定義されているように、フルスクリーンのポートレートアクティビティがあります。マニフェストに横長モードのアラートボックスからの漏れウィンドウエラー

<activity 
    android:name=".CameraActivity" 
    android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"> 
</activity> 

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 

このアクティビティのOnCreate方法は、単純で警告ボックスを起動し、YESとNOボタン。私の問題は、電話機がランドスケープに保たれているとアラートボックスがクラッシュし、漏れたウィンドウのエラーが表示されるということです。

12-06 15:26:01.590: E/WindowManager(6286): Activity com.eyepax.rdms.CameraActivity has leaked window [email protected] that was originally added here 
12-06 15:26:01.590: E/WindowManager(6286): android.view.WindowLeaked: Activity com.eyepax.rdms.CameraActivity has leaked window [email protected] that was originally added here 
12-06 15:26:01.590: E/WindowManager(6286): at android.view.ViewRoot.<init>(ViewRoot.java:277) 
12-06 15:26:01.590: E/WindowManager(6286): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:148) 
12-06 15:26:01.590: E/WindowManager(6286): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91) 
12-06 15:26:01.590: E/WindowManager(6286): at android.view.Window$LocalWindowManager.addView(Window.java:433) 
12-06 15:26:01.590: E/WindowManager(6286): at android.app.Dialog.show(Dialog.java:288) 
12-06 15:26:01.590: E/WindowManager(6286): at com.eyepax.rdms.CameraActivity$CameraTask.onPreExecute(CameraActivity.java:177) 
12-06 15:26:01.590: E/WindowManager(6286): at android.os.AsyncTask.execute(AsyncTask.java:391) 
12-06 15:26:01.590: E/WindowManager(6286): at com.eyepax.rdms.CameraActivity.onActivityResult(CameraActivity.java:127) 
12-06 15:26:01.590: E/WindowManager(6286): at android.app.Activity.dispatchActivityResult(Activity.java:4094) 
12-06 15:26:01.590: E/WindowManager(6286): at android.app.ActivityThread.deliverResults(ActivityThread.java:2905) 
12-06 15:26:01.590: E/WindowManager(6286): at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2436) 
12-06 15:26:01.590: E/WindowManager(6286): at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2481) 
12-06 15:26:01.590: E/WindowManager(6286): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1847) 
12-06 15:26:01.590: E/WindowManager(6286): at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3288) 
12-06 15:26:01.590: E/WindowManager(6286): at android.app.ActivityThread.access$1600(ActivityThread.java:132) 
12-06 15:26:01.590: E/WindowManager(6286): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1042) 
12-06 15:26:01.590: E/WindowManager(6286): at android.os.Handler.dispatchMessage(Handler.java:99) 
12-06 15:26:01.590: E/WindowManager(6286): at android.os.Looper.loop(Looper.java:143) 
12-06 15:26:01.590: E/WindowManager(6286): at android.app.ActivityThread.main(ActivityThread.java:4268) 
12-06 15:26:01.590: E/WindowManager(6286): at java.lang.reflect.Method.invokeNative(Native Method) 
12-06 15:26:01.590: E/WindowManager(6286): at java.lang.reflect.Method.invoke(Method.java:507) 
12-06 15:26:01.590: E/WindowManager(6286): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
12-06 15:26:01.590: E/WindowManager(6286): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
12-06 15:26:01.590: E/WindowManager(6286): at dalvik.system.NativeStart.main(Native Method) 

答えて

3

このアクティビティは、デバイスがLANDSCAPEモードになったときに再作成されるためです。だから、ウィンドウ悪いトークンを投げている。

マニフェストに次のコード行を追加してみてください。

android:configChanges="keyboardHidden|orientation" 
+0

これは、さまざまな問題のために使用しないでください。 Android sdkサイトでは、「注:設定変更の処理は、システムが自動的にあなたに適用されないため、代替リソースを使用することをはるかに困難にする可能性があります。ほとんどのアプリケーションでは推奨されていません。 – rfsk2010

+0

この回答を見てください:http://stackoverflow.com/questions/456211/activity-restart-on-rotation-android – Hussain

+0

http://developer.androidを見つけられない場合に備えて、こちらもご覧ください.com/guide/topics/resources/runtime-changes.html – rfsk2010

関連する問題