Android应用程序使“应用程序无响应”错误示例

时间:2018-04-24 00:40:21

标签: android

我想故意生成“应用程序无响应”错误。 而不是ANR对话框,我的示例应用程序正常工作。你能让我知道如何产生ANR吗?

我的测试代码如下。

MainActivity.java

public class MainActivity extends AppCompatActivity {
    TextView tt;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        tt = (TextView)findViewById(R.id.dd);
        int k=0;
        // next part takes long time --> expecting ANR
        for(int i=0; i<9999; i++)  
            for(int j=0; j<10000; j++)
                for(int jj=0; jj<100; jj++)
                k=i*j*j;
        tt.setText("OUT");
    }
}

activity_main.xml中

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">
    <TextView
        android:id="@+id/dd"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:text="Hello World!" />
</LinearLayout>

提前谢谢。

1 个答案:

答案 0 :(得分:2)

只需在按钮的while事件中进行无限loop onClick(),这样您的应用就无法在点击该按钮后对任何用户输入做出响应。

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
}

public void fun(View v) {
    while(true) {
        //Nothing to do
    }
}