アプリケーションのストレス テストを行っています。これが私のシナリオです
1)ワーカースレッドから進行状況バーを表示します(UIで作成されたハンドラーにメッセージを渡しています)。pd.show() が呼び出されるまでワーカー スレッドで待機してから、ワーカー スレッドを再開します
2) ワーカースレッドで操作を実行する
3) 進行状況ダイアログを閉じます。繰り返しますが、UI で作成されたハンドラーにメッセージを渡し、pd.dismiss が呼び出されるまでワーカー スレッドを待機しています。
ストレス テストのために、これを 10000 回の反復ループに入れました。私のNexus 1では、ほとんど問題なく動作します。Galaxyタブとすべてのmotorolaデバイスで、約50回ほど繰り返した後、アプリが強制終了します。BinderThreads がゆっくりと 16 まで成長し、成長が止まるのがわかります (16 が BinderThreads の最大制限であることはわかっています)。Nexus One では、これらは後で問題を引き起こします。これは、galaxy tab と moto デバイスの logcat で取得しました
W/WindowManager( 1363): OutOfResourcesException creating surface
I/WindowManager( 1363): Out of memory for surface! Looking for leaks...
W/WindowManager( 1363): No leaked surfaces; killing applicatons!
編集:進行状況ダイアログを閉じた後、何も保持していないことを確認するために、それをnullに設定しています。
何か案は?
ありがとう、
ヴィーレッシュ