Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.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 我是否总是需要将数据库查询从UI线程移动到单独的线程?_Android_Sqlite_Background - Fatal编程技术网

Android 我是否总是需要将数据库查询从UI线程移动到单独的线程?

Android 我是否总是需要将数据库查询从UI线程移动到单独的线程?,android,sqlite,background,Android,Sqlite,Background,这个问题来自于我的一个问题,或者是我对某事的困惑。因此,在UI线程上查询数据库是不可取的。但我的问题是,如果屏幕上显示的内容取决于结果如何,该怎么办。您应该仍然在后台运行它,还是应该停止屏幕输出,直到您从数据库中知道所需的信息?设置它的方法是使用AsyncTask查询数据库,使用doInBackground方法。然后使用onPostExecute方法更新UI。除了主线程外,您不能在任何其他线程上更新UI 希望这是有道理的。如果没有,以下几篇文章可能会有所帮助: 祝你好运 设置它的方法是使用

这个问题来自于我的一个问题,或者是我对某事的困惑。因此,在UI线程上查询数据库是不可取的。但我的问题是,如果屏幕上显示的内容取决于结果如何,该怎么办。您应该仍然在后台运行它,还是应该停止屏幕输出,直到您从数据库中知道所需的信息?

设置它的方法是使用
AsyncTask
查询数据库,使用
doInBackground
方法。然后使用
onPostExecute
方法更新UI。除了主线程外,您不能在任何其他线程上更新UI

希望这是有道理的。如果没有,以下几篇文章可能会有所帮助:


祝你好运

设置它的方法是使用
AsyncTask
查询数据库,使用
doInBackground
方法。然后使用
onPostExecute
方法更新UI。除了主线程外,您不能在任何其他线程上更新UI

希望这是有道理的。如果没有,以下几篇文章可能会有所帮助:


祝你好运

你永远不应该“停止屏幕的输出”。@falmari谢谢你指出这一点。下面的答案帮助我获得更多关于完全避免这种情况的答案。你永远不应该“停止屏幕输出”。@Falmari感谢你指出这一点。下面的答案帮助我获得更多关于完全避免这种情况的答案。哦,非常感谢你的解释和链接。给我一个很好的起点来学习如何处理这种情况。欢迎你!您会发现
AsyncTask
在这种情况下非常有效!它们相当容易实现,并且将比您预期的更有效地提高您的性能!玩得高兴哦,非常感谢你的解释和链接。给我一个很好的起点来学习如何处理这种情况。欢迎你!您会发现
AsyncTask
在这种情况下非常有效!它们相当容易实现,并且将比您预期的更有效地提高您的性能!玩得高兴