在 UI 線程中 `new Thread(copyTask).start()` 複製大量文件,界面仍出現明顯延遲/卡頓。
// Kotlin 協程 + IO 調度器
lifecycleScope.launch(Dispatchers.IO) {
copyDirs() // 耗時操作
withContext(Dispatchers.Main) {
// 更新 UI 提示完成
}
}
後台服務處理長耗時任務,不阻塞 UI 進程。
BufferedInputStream/OutputStream 8KB+) 或 NIO FileChannel.transferTo() (零拷貝)。在單獨進程 (`android:process=":filecopier"`) 中執行複製,通過 Messenger/AIDL 通訊,完全隔離主進程資源爭搶。
單純 `new Thread` 無法解決 IO 密集型任務對 UI 的影響,**協程/服務 + IO 優化 + 進程隔離** 才是完整方案。