私はこの本を通じて学んでいますし、それは私にこの例を示します:Runnableオブジェクトをハンドラに渡すにはどうすればよいですか?
Handler handler=new Handler() {
@Override
public void handleMessage(Message msg) {
bar.incrementProgressBy(5);
}
};
と
素晴らしいうまくいくThread background=new Thread(new Runnable() {
public void run() {
try {
for (int i=0;i<20 && isRunning.get();i++) {
Thread.sleep(500);
handler.sendMessage(handler.obtainMessage());
}
} catch (Throwable t) {
// just end the background thread
}
}
});
。しかし、さらに下の本の中でそれは言う:
あなたではなく、メッセージオブジェクトと大騒ぎはない場合、あなたはまた、アクティビティUIスレッド上で、それらのRunnable オブジェクトを実行するハンドラに のRunnableオブジェクトを渡すことができます。 ...任意のビュー(つまり、任意のウィジェットまたはコンテナ)に同じメソッド を使用できます。これにより、コードが に少し簡略化され、Handlerオブジェクトをスキップできます。
しかし、Runnable
オブジェクトでこれを行う方法の例はありません。誰かが例を持っていますか? Handler用アンドロイドドキュメントあたりとして
コードは小さいです...しかし、今は2つのrun()メソッドがありますか? – Ryan
回答ありがとうございました。回答を選択しました – Ryan
あなたは今、2つのランナブルを持っています。したがって、2つのrun()メソッドがあります。それほど多くはできません...(しかし、いくつかのコード構造によって、少し上手く見えるようになります) –