1.将使用AsyncTask的代码移到子线程中执行。
2.使用executors替换AsyncTask,因为AsyncTask已被标记为过时。以下是使用executors替换AsyncTask的示例代码:
private void startTask() {
ExecutorService executorService = Executors.newSingleThreadExecutor();
executorService.execute(new Runnable() {
@Override
public void run() {
//在这里执行工作
doInBackground();
}
});
}
3.如果您必须使用AsyncTask,请根据以下方法解决错误:
在AsyncTask类声明中添加 @SuppressLint("StaticFieldLeak") 注释,如下所示:
@SuppressLint("StaticFieldLeak")
public class MyTask extends AsyncTask {
//doInBackground方法和其他方法
这个错误是由于Android Studio升级后,Lint错误检查变得更加严格,因此您需要使用上面的方法来解决错误。