我有一个片段可以打开各种对话框并启动异步任务。我使用监听器模式,以便从对话框或任务中获取信息。
要打开对话框,请执行以下操作:
public void selectDialog() {
MyDialog dialog = MyDialog .newInstance();
dialog.setFragment(this);
dialog.show(getFragmentManager(), "selectDialog");
}
任务:
public void doTask() {
MyTask myTask = new MyTask(getActivity(), this, criteria);
myTask .execute((Void)null);
}
我将活动和片段传递给任务的原因是因为任务使用Sqlite数据库并且辅助类需要上下文(即活动)并且还打开AlertDialog。该片段仅用于将其作为侦听器进行投射。
通过上述实现,我现在只能在片段内使用对话框和任务。
以上是打开对话框并从片段启动任务的正确方法吗?或者活动本身应该是监听器,然后将信息传递回片段?