其他分享
首页 > 其他分享> > android – ANR(强制关闭/等待),同时生成足够大的列表

android – ANR(强制关闭/等待),同时生成足够大的列表

作者:互联网

我正在创建一种文件浏览器,其中如果将任何应用程序文件复制到手机/ SD卡,我将在具有对话框主题的活动上向用户显示它.对于复制的每个新“app.apk”,我将应用程序的名称和位置附加到对话框,并且列表是可滚动的.我的问题是,如果我一次将大约200个应用程序复制到存储上,则列表填充会给出强制关闭/等待对话框(ANR).如何阻止我的应用程序获得此类ANR?

解决方法:

如果某些大型计算和UI尝试同时运行并且需要足够的时间来启动(大约超过5秒),那么系统会关注用户关闭应用程序.

要解决此问题,可以选择将操作分配到不同的子线程,然后在异步线程(runOnUiThread)上运行UI以调度应用程序任务.

new Thread() {
    @Override
    public void run() {
        try {
            // code runs in a thread
            activity.runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    // code runs in a UI(main) thread
                }
            });
        } catch (final Exception ex) {
        }
    }
}.start();

标签:android,android-anr-dialog
来源: https://codeday.me/bug/20190826/1726201.html