Handler.post()へ受け渡すRunnableオブジェクトを使い回しても良いでしょうか
Handler.post()へ受け渡すRunnableオブジェクトは、よく匿名クラスとして受け渡すように記述されている事が多いと思います。
mHandler.post(new Runnable() {
@Override
public void run() {
}
});
しかし例えば、この処理を呼び出す頻度が非常に高い場合、毎回新たにRunnableオブジェクトを作りたくありません。
そこで以下のようにオブジェクトを使い回して、例えばtest1()が呼ばれた時とtest2()が呼ばれた時とで表示したい文字列だけを上書きするようにした場合、まだHandler側でまだ処理されていない文字列が上書きされて消えてしまう等の問題が発生するものでしょうか。
このような使い方は正しいのでしょうか、教えて頂けると助かります。
private class TestRunnable implements Runnable {
private String mMessage;
public TestRunnable setStr(final String message) {
mMessage = message;
return this;
}
@Override
public void run() {
Log.d("Test", "Message:" + mMessage);
}
}
private Handler mHandler = new Handler();
private TestRunnable mTestRunnable = new TestRunnable();
public void test1(String msg) {
mHandler.post(mTestRunnable.setStr(msg));
}
public void test2(String msg) {
mHandler.post(mTestRunnable.setStr(msg));
}