1

--> 最初のアクティビティでスレッド化を実装しました。また、進行状況ダイアログも使用しました。そのため、(その画面のみの)オリエンテーション中にアプリケーションがクラッシュします-メモリリークの例外が発生します。そして、これの解決策として、ここから知ったのは、

android:configChanges="keyboardHidden|orientation"

しかし、今はそのアクティビティの onCreate() メソッドが呼び出されていないため、orientationChanges でこのメソッドを呼び出す必要があります。では、この段階で何をすべきでしょうか?

4

3 に答える 3

0

これをマニフェスト ファイルに追加します

  android:screenOrientation="landscape" or android:screenOrientation="portrait"

例 :

 <activity android:name=".SomeActivity"
              android:label="@string/app_name"
              android:screenOrientation="portrait">
于 2011-09-09T07:21:01.647 に答える
0

このブログをチェックしてください:

http://blog.doityourselfandroid.com/2010/11/14/handling-progress-dialogs-and-screen-orientation-changes/

スタックオーバーフローに関する他の同様の質問もあります: 進行状況ダイアログとバックグラウンドスレッドがアクティブなときに画面の向きの変更を処理する方法は?

最初のオプションを使用した場合、エミュレーターに onCreate() を 2 回呼び出すバグがあり、クラッシュが発生することを経験しましたが、実際のデバイスでは問題になりません。

于 2011-09-09T07:24:13.630 に答える
0

アプリのオリエテーションの変更を本当に処理しますか?

そうでない場合はscreenOrientation、manifest.xml ファイルで属性を設定して、携帯電話の向きに関係なく、アプリがその向きを維持できるようにします。

その場合は、このメソッドをオーバーライドする必要がありますpublic void onConfigurationChanged (Configuration newConfig)。ここで、アプリの構成 (向き、キーボードの非表示など) の変更を処理できます。これをオーバーライドしないと、システムは単にアプリをシャットダウンして再起動します。これにより、メモリリークが発生します。

于 2011-09-09T07:26:32.457 に答える