我正在开发一个需要来自 URL 调用的数据的简单应用程序。这是相关的代码部分
class NewsFeed : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_news_feed)
lifecycleScope.launchWhenCreated {
getNewsData()
}
private suspend fun getNewsData() {
withContext(Dispatchers.IO) {
try {
val jObj = Jsoup.connect(getString(R.string.news_feed)).get()
//many non relevant lines
BitmapFactory.decodeByteArray(URL(img).readBytes(), 0, 0)
IDE 对 .get() 和 URL() 方法都发出警告,称这是“不适当的线程阻塞方法调用”
但是,如果我理解正确,我在 Dispacher.IO 协程范围内,并且该工作正在为阻塞任务创建的不同线程上完成。即使我的通话超时,应用程序也不会破坏或阻止 UI。
除了抑制警告,我做错了什么?