Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/210.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 AsyncTask作为许多不更新UI的步骤之一_Android_Android Asynctask - Fatal编程技术网

Android AsyncTask作为许多不更新UI的步骤之一

Android AsyncTask作为许多不更新UI的步骤之一,android,android-asynctask,Android,Android Asynctask,在我的例子中,我需要从网络中获取一些数据,对其进行处理,然后根据第一次网络查询的结果从网络中获取其他数据。 然而,第一个查询可能需要用户干预。。。或者不是 我了解AsyncTask如何运行并在UI对象中显示其结果。 但是,我应该如何将操作“链接”在一起,以便第一个AsyncTask派生的对象在开始新操作之前正确终止 我的想法是,当调用onPostExecute时,如果我启动另一个基于UI的操作,它将不会终止,直到基于UI的操作终止 是否有正确的方法来完成AsyncTask过程,将结果发送给调用对

在我的例子中,我需要从网络中获取一些数据,对其进行处理,然后根据第一次网络查询的结果从网络中获取其他数据。 然而,第一个查询可能需要用户干预。。。或者不是

我了解AsyncTask如何运行并在UI对象中显示其结果。 但是,我应该如何将操作“链接”在一起,以便第一个AsyncTask派生的对象在开始新操作之前正确终止

我的想法是,当调用onPostExecute时,如果我启动另一个基于UI的操作,它将不会终止,直到基于UI的操作终止

是否有正确的方法来完成AsyncTask过程,将结果发送给调用对象,清理,然后调用对象可以自己处理

还是我在这里无所事事



编辑:请注意,我的问题是关于异步任务后台处理以及如何正确使用它以避免执行堆栈溢出。我不是在问我是否应该使用这种方法。

我认为您应该尝试为您的网络请求使用后台服务,并相应地更新UI。您可以使用意图服务进行网络操作,并广播对活动的更新以刷新UI。希望能有帮助


编辑:另外,关于取消请求,我认为最好实现一个服务并在活动上使用bindService()附加到它。这样,如果有取消请求,您可以通知服务停止它正在做的任何事情

我认为您应该尝试为您的网络请求使用后台服务,并相应地更新UI。您可以使用意图服务进行网络操作,并广播对活动的更新以刷新UI。希望能有帮助


编辑:另外,关于取消请求,我认为最好实现一个服务并在活动上使用bindService()附加到它。这样,如果有取消请求,您可以通知服务停止它正在做的任何事情

基于UI的操作永远不应该(!)阻止工作流,也许你应该使用ViewSwitcher或BackgroundServices并最近更新UI,而不是阻止某项操作。

基于UI的操作永远不应该(!)阻止工作流,也许你应该使用ViewSwitcher或BackgroundServices并最近更新UI,经过大量的搜索,我发现最好的方法是使用消息处理程序,而不是阻止某事物。 这意味着,在threads操作结束时,它向UI代码(不是UI小部件注释)发布一条带有结果的消息,然后可以干净地终止


这意味着一个轻巧而简单的实现。

经过大量搜索后,我发现最好的方法是使用消息处理程序。 这意味着,在threads操作结束时,它向UI代码(不是UI小部件注释)发布一条带有结果的消息,然后可以干净地终止

这意味着一个轻而简单的实现