Я получаю InflateException
, которому предшествует исключение OutOfMemoryError
. Я понимаю, что я должен решить эту проблему, уменьшив размер/разрешение изображения или добавив в мой манифест android:largeHeap="true"
, но что-то необычное происходит.Xamarin Android - исключение OutOfMemoryError - большое изображение
Это исключение не бросается, когда я впервые надуваю представление. У меня есть Activity
, который я использую, который содержит PreferenceFragment
. Когда вы выбираете строку в PreferenceFragment
, вы попадаете в Fragment
, который показывает некоторые изображения и текст. Исключение вызывается только после перемещения между этими фрагментами вперед и назад. Мне кажется, что что-то не устраняется должным образом, поскольку это произойдет на любом из фрагментов, но никогда не происходит в первый, второй или третий раз.
Есть ли способ, которым я могу обеспечить, чтобы все удалялось при возвращении от одного из этих фрагментов?
Line, где исключение в OnCreateView
из Fragment
:
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
return inflater.Inflate(MyResource, container, false);
}
Также стоит отметить, исключение только после того, как брошено несколько различных фрагментов открываются из деятельности. Вы могли бы идти туда и обратно между тем же самым днем и исключение не было бы брошено.
GC.Collect будет работать, но я бы посмотрел на http://stackoverflow.com/a/28868582/4984832, чтобы реально понять проблему и как Dispose/OnDestroy, чтобы очистить ваш фрагмент (и) правильно – SushiHangover