我想故意生成“应用程序无响应”错误。 而不是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>
提前谢谢。
答案 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
}
}