我有一个活动,我用它作为自定义加载对话框(对话框非常复杂,并且具有适合客户颜色方案的自定义UI等)。
加载对话框是从类中创建并显示的,它不是从 Activity 类派生的(我提到这是因为 startActivityForResult()无法调用):
private void showLoadingDialog()
{
Intent intent = new Intent( this, ActivityDialogLoading.class );
intent.addFlags( Intent.FLAG_ACTIVITY_NEW_TASK );
startActivity( intent );
isLoadingDialogShown = true;
}
当应用程序在后台执行长时间运行的异步任务时,将显示该对话框。
现在当后台任务完成后我想关闭加载对话框(加载对话框还有取消按钮,所以客户端可以中断任务,但是这个是另一个故事)。
我没有找到方法来获取对正在运行的 ActivityDialogLoading 类的实例的引用来调用 finish()方法......
我使用的方式有点复杂 - 我覆盖 BroadcastReceiver ,因此它在构造函数中引用了 ActivityDialogLoading 。在 ActivityDialogLoading 的 OnResume()方法中,我注册为广播意图的接收者。
当我需要关闭加载对话框时,我广播了意图......有更好的方法吗? 用其他词语说同样的话:当应用程序引擎中的某个后台事件导致关闭操作时,关闭活动的最佳方法是什么?