该问题是由于主线程阻塞导致的,可以使用多线程的方式解决。将耗时操作放在子线程中执行,避免在主线程阻塞,从而解决ANR崩溃。以下是一个使用AsyncTask的示例代码:
private class MyTask extends AsyncTask {
@Override
protected Void doInBackground(Void... voids) {
//耗时操作
return null;
}
@Override
protected void onPostExecute(Void aVoid) {
super.onPostExecute(aVoid);
//更新UI界面
}
}
在调用时,可以使用以下代码:
new MyTask().execute();
这样可以保证耗时操作在子线程中执行,不会阻塞主线程,从而避免ANR崩溃。