Android 静态自定义对话框

Android 静态自定义对话框,android,static,customdialog,Android,Static,Customdialog,我想创建一个静态自定义对话框,并想在另一个类中访问它 然而,如果我通过了当前的类,我就会出错 这是我的密码: public static void showcustomdialogbox(String str,String type) { final Dialog dialog=new Dialog(MainActivity.this);//error line dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);

我想创建一个静态自定义对话框,并想在另一个类中访问它

然而,如果我通过了当前的类,我就会出错

这是我的密码:

public  static void showcustomdialogbox(String str,String type)
{
    final Dialog dialog=new Dialog(MainActivity.this);//error line

    dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
    dialog.setContentView(R.layout.customdialogimageview);
dialog.show();

}
出现的错误是
-无法在静态上下文中使用(错误行)

那么,我应该在上下文中传递什么呢???

你真的不想这样做。对话框仅在活动(或在极少数情况下是服务)的上下文中才有意义。它们需要一个上下文来显示,并保留对该上下文的引用。因此,如果对对话框有静态引用,则对其上下文有静态引用。即使在活动或服务退出后,这种情况仍将持续。所以你现在泄露了那个活动。这意味着您还泄漏了该活动所持有的所有变量,包括视图对象、它们关联的位图等。这可能是10兆字节,足以在以后导致OutOfMemory问题。规则是你永远不会有一个静态的上下文变量