Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android “最佳实践”;冻结屏幕“;虽然有一些操作(使用进度条?)_Android - Fatal编程技术网

Android “最佳实践”;冻结屏幕“;虽然有一些操作(使用进度条?)

Android “最佳实践”;冻结屏幕“;虽然有一些操作(使用进度条?),android,Android,我是Android的初学者。我想“冻结”我的应用程序(我的意思是,用户不能做任何动作),当我必须做一些操作。 举个例子,我删除了SQLiteBase表中的所有行。在这个过程中,我想显示一个progressbar,用户在结束之前不能做任何事情 我知道progressbar机制和AsyncTask,但我发现这是一个繁重的解决方案。。有更好更简单的解决方案/实践吗 一般来说,不建议冻结,您应该始终尝试允许用户取消或返回。等待操作完成很烦人。更多信息可以阅读 然而,有时当你必须的时候,你必须 简言之,这

我是Android的初学者。我想“冻结”我的应用程序(我的意思是,用户不能做任何动作),当我必须做一些操作。 举个例子,我删除了SQLiteBase表中的所有行。在这个过程中,我想显示一个progressbar,用户在结束之前不能做任何事情


我知道progressbar机制和AsyncTask,但我发现这是一个繁重的解决方案。。有更好更简单的解决方案/实践吗

一般来说,不建议冻结,您应该始终尝试允许用户取消或返回。等待操作完成很烦人。更多信息可以阅读

然而,有时当你必须的时候,你必须

简言之,这就是您如何显示:

(该“false”值为,因此用户无法使用“后退”按钮取消该值)

然后,当需要取消它时(如果使用AsyncTask,则在onPostExecute时),只需调用:

progressDialog.dismiss();

那么,我必须使用另一个线程?(Asynctask..)繁重的解决方案…但如果没有选择..则取决于您在操作中所做的操作。不管怎么说,如果速度很快,为什么还要费心处理整个事情。。。如果这是一个较长的操作(顺便说一句,取决于多长时间,因为不同的长度需要不同的解决方案),请使用不同的线程,因为UI线程将被卡住,如果大约5秒左右,则不显示对话框并向用户显示ANR(另外,如果用户在操作过程中触摸屏幕,将显示ANR)。
progressDialog.dismiss();