如何在套接字上使用Asynctask

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

我在使用我的应用程序时确实遇到问题。我正在使用AsyncTask类来执行与Sockets一起使用的后台操作。我相信背景很好。

嗯,在我的应用程序中,我有一个UDP侦听器和UDP发送器,它们分别从服务器和服务器侦听任何类型的数据,并且为它们都创建了异步类。现在,我希望通过单击按钮就可以从我的主要活动中执行两个AsyncTask类,并且我有一个停止按钮来停止执行,但是一旦单击停止按钮,线程仍然保持运行,原因是,在调用AsyncTask的onCancelled(),其调用postexecute()之后,在我的postexecute()中,我正在创建AsyncTask类的对象并调用execute,以便侦听器和发送器保持运行,即[C0 ]始终保持通话状态,监听器和发送器保持运行状态。

[我知道在doinBackground()中创建Asynctask类的对象不是一个好主意,因为它将处于无限循环中,但是如果我能够取消调用postexecute()的停止按钮上的执行,它将可能对我有用。

请帮助我。

android sockets android-asynctask
1个回答
0
投票

我认为您的问题是,当您取消asynkTask时,实际上实际上是在取消仅在活动中调用的最外面的asynckTask,但是当您递归运行asyncTask的其他实例时,则必须取消他们都让整个事情停了下来。

为什么不从oncancelled()内部删除代码,然后将其放入方法内部,然后从doInBackground()内部进行调用,如下所示:

doInBackground()
© www.soinside.com 2019 - 2024. All rights reserved.