AlertDialog泄漏窗口中的链接?

时间:2011-08-19 23:58:12

标签: android alertdialog linkify

我在警告对话框中创建了一个可链接的文本,并使TextView可单击,如下所示:

final SpannableString noRecords = new SpannableString("Sorry, no records could be found, please try again, or contact us at 867-5309");
Linkify.addLinks(noRecords);

AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setTitle("No Records Found")
    .setMessage(noRecords)
    .setCancelable(true)
    .setPositiveButton("Ok", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int id) {
            dialog.cancel();
        }
    });

AlertDialog alert = builder.create();
alert.show();

((TextView)alert.findViewById(android.R.id.message)).setMovementMethod(LinkMovementMethod.getInstance());

这样可行,但是当它被点击时会在logcat中产生错误:

  

08-19 19:40:55.753:ERROR / WindowManager(5886):活动   com.blah.MainActivity已经泄露窗口   com.android.internal.policy.impl.PhoneWindow$DecorView@405d7010那个   最初被添加到这里08-19 19:40:55.753:   错误/ WindowManager(5886):android.view.WindowLeaked:Activity   com.blah.MainActivity已经泄露窗口   com.android.internal.policy.impl.PhoneWindow$DecorView@405d7010那个   最初是在这里添加的

我认为这是因为在点击链接之前不会解除警报。 有没有办法解决?我不想抛出任何错误。

1 个答案:

答案 0 :(得分:1)

如果要在销毁活动之前释放对话框,可以覆盖onDestroy()事件

@Override
public void onDestroy(){
    //Your dialog disposal code here

    super.onDestroy(); //Make sure you include this at the end.
}

希望有所帮助