Растровое изображение в Android - PullRequest
1 голос
/ 09 января 2012

У моей деятельности есть несколько статических растровых массивов, но иногда эти статические растровые изображения исчезают, когда я открываю другую активность, например, загружать фотографию, используя намерение, указанное ниже: Мой код

 Intent intent = newIntent(Intent.ACTION_PICK,android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
 startActivityForResult(intent, ACTIVITY_SELECT_IMAGE);

Когда я слишком долго нахожусь в намерении, которое я вызываю, чтобы выбрать изображение, весь мой статический массив растровых изображений пропадает .. Я не могу использовать окончательный статический, потому что я изменяю эти растровые изображения во время выполнения. Как я могу предотвратить это? Спасибо.

1 Ответ

1 голос
/ 24 февраля 2012

Android не дает никаких гарантий на подобные статические ссылки.Причина, по которой это иногда работает, а иногда нет, в основном потому, что иногда сборщик мусора (GC) установил для вашего массива значение null, а иногда нет.GC не будет устанавливать вашу ссылку на нуль, если ваша активность активна, но будет, если это необходимо, когда ваша активность неактивна, например, не видна.

Вам необходимо добавить проверку на нуль в onResume () и создайте новый массив растровых изображений, если это необходимо.Что касается самих растровых изображений, которые хранятся в массиве, вам необходимо хранить их в памяти.Прочтите следующую статью и прочитайте о сохранении файлов кэша с помощью метода getCacheDir ().Это в основном то, что вам нужно, так как данные не должны постоянно храниться в течение нескольких сеансов.

http://developer.android.com/guide/topics/data/data-storage.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...