У меня есть линейный макет для моей 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">
И у меня есть 2 фоновых рисунка, расположенных в папках drawable-land и drawable-land.
Когда ориентация меняется, все нормально, но фон не меняется в соответствии с ориентацией. Он всегда сохраняет самый первый рисунок для фона.
Я попытался изменить его вручную в методе 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