应用程序无响应,为什么不显示ANR弹出窗口?

时间:2019-10-31 10:56:21

标签: android performance-testing android-anr-dialog

我想测试我的应用程序没有响应。下面代码中的按钮运行无限循环,但不会显示ANR弹出窗口。

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)
    Toast.makeText(this@MainActivity,"ahmet vefa saruhan",Toast.LENGTH_SHORT).show()
}

fun buttonClickec2( v : View) { //after button click
    while(true) {
        //Nothing to do, why doesn't ANR show?
    }
}

请仔细阅读问题。问题是关于ANR弹出窗口的。

2 个答案:

答案 0 :(得分:1)

您正试图通过引起无限循环来故意显示ANR弹出对话框。

fun buttonClickec2( v : View) { //after button click
    while(true) {
        //Nothing to do, why doesn't ANR show?
    }
}

根据Android文档here

  

Android会为需要花费太长时间才能处理应用的应用显示ANR对话框   仅在设备的“显示所有ANR”中启用了广播消息   开发人员选项。因此,后台ANR对话框不是   总是显示给用户,但该应用仍可能会遇到   性能问题。

答案 1 :(得分:0)

使用show方法显示吐司。

Toast.makeText(this@MainActivity,"ahmet vefa saruhan",Toast.LENGTH_SHORT).show()