2012年6月 5日

final引数+runOnUiThreadは大丈夫なのか?

finalが無い→インスタンスができた時点ではアドレス不定→new Runnableから参照できない
finalがある→インスタンスができた時点でアドレスが決定→new Runnableから参照可能

という勝手な理解をしているのですが、どのくらい安全なのか、非効率なのか、イマイチ理解していません。

/** このfinalをよく理解してない */
private void log(final String s) {
    runOnUiThread(new Runnable() {
        @Override
        public void run() {
            TextView tv = (TextView) findViewById(R.id.hello);
            if (tv != null) {
                tv.setText(tv.getText() + s + "\n");
            }
        }
    });
}