私のAndroidプロジェクトでは、ボタンのクリック、接続イベント、またはDilaog.onShow()などのUIイベントを操作するためのいくつかのコールバックを定義しています。デモの目的で、アクティビティコードから起動する必要があるRunnableインターフェイスを選択しました。Javaでは、自分自身を表現するさまざまな方法があります。
1つのパターンは、匿名クラスを使用することです
runOnUiThread(new Runnable() {
public void run() {
doSomething();
}
});
private void doSomething() {
}
別の-内部プライベートクラスを定義する、すなわち
private DoSomething implements Runnable {
public void run() {
// do something;
}
}
...
runOnUiThread(new DoSomething());
さらに別の-このようにプライベートメンバーを使用するには:
private final Runnable doSomething = new Runnable() {
public void run() {
// do something;
}
}
...
runOnUiThread(doSomething);
これが私が一番好きなもう1つです。これは、誰かが実際に使用しない限り、実際にはオブジェクトを構築しないためです。余分なクラスを回避し、必要に応じてパラメーターを受け取ることができるためです。
private Runnable doSomething() {
return new Runnable() {
public void run() {
// do something;
}
}
}
...
runOnUiThread(doSomething());
私は好みや宗教的信念の議論ではなく、コードの保守性とパフォーマンスの議論を探しています。私は自分の好み、おそらくは与えられた状況に応じて異なる好みを開発するのに役立つヒントやアドバイスを受け取りたいと思います。
ネタバレ:
Javaの進歩により、この質問は廃止されました。受け入れられた回答を参照してください。