在我使用某种方式在非ui线程(AsyncTask,Loader等)中调用代码之前。但是现在我尝试使用@WorkerThread注释方法,它调用了一些网络请求
@WorkerThread
public void downloadInFile(final String url, final String rootDirectory, final OnFinishLoadAudioInFile onFinishLoadAudioInFile,
final OnUpdateLoadAudio onUpdateLoadAudio) {
final String fileName = URLUtil.guessFileName(url, null, null);
downloadFile(url, rootDirectory + File.pathSeparator + fileName, onFinishLoadAudioInFile, onUpdateLoadAudio);
}
,并android.os.NetworkOnMainThreadException
。如何正确使用@WorkerThread
注释?
答案 0 :(得分:11)
WorkerThread注释仅用于添加调用线程的要求,而不是自动使用特定线程。你仍然需要进行线程化。
答案 1 :(得分:-2)
// 导入 android.annotation.WorkerThread;
或
导入 androidx.annotation.WorkerThread;
与 try-catch 一起使用。