作为 android 开发新手,我遇到的困难之一是我的类倾向于在所有内部类等中变得相当广泛,用于 gui 侦听器等。所以我想出了一个解决方案来分解我的类,我想听听周围 android 专家的一些反馈。
举个例子。我不想在同一个类中定义特定活动的所有对话框(该活动中发生了一系列对话框)所以我实现了一个 DialogManager 类来定义和保存所有潜在的对话框,从将此 DialogManager 的 Activity 并使用它来通知 Activity 发生了哪些 gui 事件。
这里是这个DialogManager类的一个片段,mHandler是回调Activity的handler
mDownloadDialog = new ProgressDialog(mContext);
mDownloadDialog.setButton(AlertDialog.BUTTON_NEGATIVE, "Cancel",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
mDownloadDialog.dismiss();
Message message = mHandler.obtainMessage();
message.arg1 = DOWNLOAD_DIALOG;
message.arg2 = AlertDialog.BUTTON_NEGATIVE;
message.sendToTarget();
}
});
所以这很有效,我对现在更有条理的源代码感到满意,但我想知道 Handler 类是否是执行此操作的正确方法,或者这是否有点矫枉过正,并且有一些更好的方法可以实现相同的结果受到推崇的。
编辑:正如博尔德所指出的
处理程序消息不会立即执行
因此,考虑到这一点,使用 Handler 不是正确的方法。
下一个想法就像在给定示例中定义一个接口一样简单
public interface DialogEventReceiverInterface {
public void dialogEvent(int dialog,int button);
}
在 Activity 中实现该接口,将 Activity 交给 DialogManager 并在发生事件时调用 dialogEvent。现在在我看来非常直接......