请不要认为这是一个多余的问题。请完整阅读。
我在 AsyncTask 的 doInBackground(Void...params) 中有一个无限循环。doInBackground() 中有一个回调函数。因此,我无法使用 cancel()、onCancelled() 和 isCancelled() 方法终止此任务。问题是执行永远在回调函数处等待。因此,无论我在哪里(在 doInBackground 内)编写这个 isCancelled() 检查以跳出无限循环,它都不会被执行。
有没有人有解决这种问题的方法?或者有人有类似的要求吗?
@Override
protected void onCancelled()
{
// Socket Close
}
@Override
protected Void doInBackground(Void... params)
{
try
{
// Socket Open
while (true)
{
socket.receive();
}
}
catch (Exception e)
{
}
return null;
}