静态自定义对话框Android

时间:2014-06-09 07:56:57

标签: 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);
    dialog.setContentView(R.layout.customdialogimageview);
dialog.show();

}

错误来自-cannot use in static context(error line) 那么,我应该在上下文中传递什么?

1 个答案:

答案 0 :(得分:1)

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