注意:阅读,然后标记为“重复”
因此根据this android开发站点,ProgressDialog因以下原因而被弃用:
此类在API级别26中已弃用.ProgressDialog是一个模式对话框,阻止用户与应用程序进行交互。您应该使用 ProgressBar 等进度指示器,而不是使用此类,它可以嵌入到您应用的U I中。或者,您可以使用通知来通知用户任务的进度
但这对我来说并不合适。
在某些情况下,我不希望我的用户与我的应用互动。我不希望他离开当前的活动。以“创建新配方”页面为例。它将它保存到数据库中,当它完成后,它会返回主页面,它显示数据库中的所有收件人,并且他创建的配方尚未显示在列表中(因为它没有保存到数据库中) ),因此混淆了用户。
所以在上面提到的情况下,我是否被迫使用不赞成的东西?还是有替代方案吗?
答案 0 :(得分:1)
我不希望他离开当前的活动
你没有太多选择。无论您是否喜欢,用户都可以导航到其他应用程序。
他创建的食谱尚未显示在列表中(因为它没有保存到数据库中),因此使用户感到困惑。
那么也许您应该更新数据库并同时更新列表。例如,列表可以在ArrayList<Recipe>
之外运行,而不依赖于要完成的数据库I / O来显示新创建的配方。
此外,如果用于保存配方的数据库I / O花费的时间超过几百毫秒,则需要关注为什么您的数据库I / O需要这么长时间。将配方保存到本地数据库首先不需要ProgressDialog
。
所以在上面提到的情况下,我是否被迫使用不赞成的东西?还是有替代方案吗?
请勿阻止等待I / O完成的UI。
否则,使用ProgressDialog
创建自己的AlertDialog
对等项。或者,坚持使用已弃用的ProgressDialog
。