定義されたActivityGroupの線形レイアウトがあります
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:mtx="http://schemas.android.com/apk/res/com.matriksdata"
android:id="@+id/homeActivityGroupBG"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:background="@drawable/background">
そして、私は「drawable」と「drawable-land」フォルダに2つの背景のドローアブルを持っています。向きが変わるとすべてが正常になりますが、向きによって背景は変わりません。それは常に背景の最初の描画可能性を維持します。
onConfigurationChanged
次の行を追加して、メソッドで手動で変更しようとしました。
background.setBackgroundResource(R.drawable.background);
それは問題を解決します。ただし、構成が変更されたり、アクティビティを通過したりするたびに、大量のメモリリークが発生します。
編集:theme.xmlを作成して、ウィンドウの背景画像を定義します。XMLファイルに含まれるもの:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="Theme" parent="android:Theme">
<item name="android:windowBackground">@drawable/background</item>
</style>
</resources>
AndroidManifest.xmlを次のように変更しました
<application android:icon="@drawable/icon" android:label="@string/app_name"
android:debuggable="true" android:name="com.matriksdata.app.DefaultApplication"
android:theme="@style/Theme">
レイアウトから背景要素を削除しました。何も変わっていません。デバイスの向きが変わると新しいドローアブルを取得できず、最終的にアプリケーションがクラッシュする原因となるメモリリークが発生します。
向きが変わるときにドローアブルを強制的に変更する他の方法はありますか?または、アプリケーションがメモリリークを発生させる理由はありますか?
編集:メモリリークの問題について、 Androidのメモリ使用量の問題でActivityGroupの使用について質問しました