残念な子の覚書 -3ページ目

残念な子の覚書

忘れないように日々書いていこうと思います。

androidでA4サイズ位の画像を使ったりすると、OutOfMemoryのエラーが出まくってたので、
表題をやってみました。

//ガベージコレクション
Runtime.getRuntime().gc();

あくまで困ったときに使用するようにしています。
万能魔法の言葉ではないので。。。

ちなみに2.3からコンカレントGCになっていますが、
それ以前においてはActivityが止まる可能性があるので注意してください。

そもそも、メモリーリークの発生原因は、Contextの使いまわしやインスタンスの残骸が残ることだと思うので、そういう部分を気をつけておけばずいぶん改善されるのではないでしょうか。
C#もですが、javaでは文字列型のStringはオブジェクトのインスタンスとして判断されるので、
equalsメソッドを使いましょう。

//空文字なら処理をしない場合
if(!str.equals("")){
    //ここに処理を記述
}

という形で。。。
nullのチェックはそのまま、==か!=を使いましょう。
C#のテキストボックスとかで全選択とか使うときです。

protected override bool ProcessDialogKey(Keys key) {
    switch(key){
        case Keys.A | Keys.Control:
            if(this.ActiveControl is TextBox){
                TextBox textbox = (TextBox)this.ActiveControl;
                textbox.SelectionStart = 0;
                textbox.SelectionLength=textbox.Text.Length;
                return true;
            }
            break;
    }
    return base.ProcessDialogKey (key);
}


面倒ですが、書いとくとあとから便利かも。。。
swich文なので、escで終了とかも追加できますよ。
このブログは表題のとおり、残念な私が忘れてしまいそうなことを書き綴るようにしたいと思います。
質問等あればtwitter→@Yamatomo_1014まで。