質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Q&A

解決済

2回答

5125閲覧

Androidにおいて何度か大きな画像をImageViewで表示させると落ちる

hakase

総合スコア107

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

0グッド

0クリップ

投稿2016/11/02 02:39

編集2016/11/02 02:40

こんにちは。
Androidにおいて、XMLにImageViewを記述しsrcで大きなリソース(2000x1000)を記述してActivityを実行させています。最初の1回目は落ちないのですが、finish()して閉じた後、再度Activityを実行をするのを数回繰り返すと落ちてしまいます。LogにはOut of Memmoryがありました。

finish()だけではメモリが解放されないのでしょうか?
finish()が完了してメモリが解放されるまでには時間がある程度かかり
解放される前に再取得されているためでしょうか?
なお、使っている端末はGalaxy S2です。

困っています。アドバイスいただければ助かります。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

finish()だけではメモリが解放されないのでしょうか?

うまくやってもらいたいですが残念ながら
cleanupView(View view)というのを作って使う対策方法がよくある手で
onDestoryに入れたりします。
http://qiita.com/Hoshi_7/items/f29bfbd719b0bee8de48

srcで大きなリソース(2000x1000)

これは@drawableに直接画像が存在するのでしょうか?
だとすると、リソースの少ない端末では最初から落ちるかもしれません

その場合は、assetsからBitmapFactoryを使うと画像をダウンサンプリリングして取り込めるためdrawableよりは大きいファイルを取り込めます
https://akira-watson.com/android/imageview.html

投稿2016/11/02 05:30

aja

総合スコア3733

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hakase

2016/11/03 02:36

ありがとうございます。実はViewクラスをextendしたクラスを使っていまして、Bitmapをnullにしたのですが、駄目でした。onDrawでオーバーライドしていて、canvas.drawBitmapで描画しています。こっちの解放がうまくいっていないかもしれませんね。ただ質問内容にあまりにも違い過ぎるので、せっかく回答していただいたので、ベストアンサーしときます。ありがとうございました。
hakase

2016/11/03 02:38

前の回答の方が先に同じことを指摘してました。ベストアンサーを変えさせていただきます。はやとちりしてごめんなさい。
guest

0

ベストアンサー

Activity#onStopでImageView#setImageDrawableにnullを渡して明示的に画像をクリアしましょう。

投稿2016/11/02 04:51

yona

総合スコア18155

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問