如何防止全屏显示进度时出现ANR

问题描述 投票:0回答:1

我们有一个应用程序,在同步时我们会全屏显示进度。该屏幕上有一个动画图标和说明同步内容。 同步可能需要几分钟时间。

当用户随机点击全屏进度时,尽管应用程序未冻结且进度已正确更新,但应用程序仍会收到 ANR 消息。

有什么办法可以防止全屏进度显示时出现ANR吗?

注意:对于用户来说,同步数据时不可能使用,因为用户可以在应用程序中创建新数据并导致数据完整性失败。

编辑: 日志显示:

[split_config.arm64_v8a.apk!libe_sqlite3.so] sqlite3_exec
Input dispatching timed out

[split_config.arm64_v8a.apk!libe_sqlite3.so] sqlite3_step
Input dispatching timed out

Native method - android.os.MessageQueue.nativePollOnce
Input dispatching timed out

确实,我们正在将 EntityFramework 与 SQLite 2.2.6 一起使用,但我们坚持这一点,因为这是 .NET Standard 2.0 支持的最新版本

android xamarin.forms progressdialog android-anr-dialog long-running-processes
1个回答
0
投票

在同步时,同步操作不应该在UI线程中,通知UI线程进度,并显示当前进度。此时你的UI线程并没有被阻塞,不会导致ANR。

© www.soinside.com 2019 - 2024. All rights reserved.