Java Android中的强制关闭线程
在我的android应用程序中,我使用线程下载一些数据 以下是当前工作代码的原型:Java Android中的强制关闭线程,java,android,multithreading,download,Java,Android,Multithreading,Download,在我的android应用程序中,我使用线程下载一些数据 以下是当前工作代码的原型: void startThread() { thread = new Thread(this); thread.setPriority(Process.THREAD_PRIORITY_BACKGROUND); thread.start(); } @Override public void run() { while(application_running) {
void startThread()
{
thread = new Thread(this);
thread.setPriority(Process.THREAD_PRIORITY_BACKGROUND);
thread.start();
}
@Override
public void run()
{
while(application_running)
{
//download my data... (on slow server response, execution gets stuck here)
}
}
当从服务器下载数据的速度非常慢时会出现问题。尽管我关闭了应用程序:数据下载线程仍然处于活动状态。但是我需要这个线程在应用程序关闭后立即关闭
有没有办法强行关闭它?或任何其他下载数据的标准方式?使用与活动或片段生命周期相关的异步任务 假设AsyncTask有一个名为t的成员变量,并且该变量已在活动或片段中的其他位置启动,则可以在onDestroy中执行以下操作:
if ((t != null) && !t.isCancelled())
{
boolean mayInterruptIfRunning = true;
t.cancel(mayInterruptIfRunning);
t = null;
}
使用AsyncTask还有一个好处,即允许您在UI线程上安全地更新UI以进行进度报告,并在后台任务完成后覆盖onProgressUpdate和onPostExecute方法。您可以在onPause方法中调用thread.interrupt以停止线程,对于连接缓慢的问题,请输入logcat错误