断片では、私はダウンロードコードを持っています。私は他の部分でもダウンロード機能が必要であると確信しています。Androidのコールバックとコードの再利用
私はそれをフラグメントからライブラリとして別のファイルにしたいが、コードにはアクティビティにスタックされたいくつかのアンドロイドコールバックメソッドが含まれていて、別のファイルに移動するとそのハンドリング方法はわかりませんクラス)。
フラグメントでダウンロードコード、
private fun beforeDownload() {
// check permission
val externalPermission = ContextCompat.checkSelfPermission(activity, Manifest.permission.WRITE_EXTERNAL_STORAGE)
if (externalPermission != PackageManager.PERMISSION_GRANTED) {
requestPermissions(arrayOf(Manifest.permission.WRITE_EXTERNAL_STORAGE), REQUEST_ID_STORAGE_PERMISSION)
} else {
onDownload()
}
}
/** Android call-back method after requesting permission **/
override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<out String>, grantResults: IntArray) {
beforeDownload()
}
private fun onDownload() {
if (media >= 100000000) {
Toast.makeText(activity, "The media is over 100Mb", Toast.LENGTH_SHORT).show()
} else {
downloadMediaJob = launch(UI) { downloadMedia() }
}
}
// Android receiver when download completed
private val onDownloadComplete = object : BroadcastReceiver() {
override fun onReceive(p0: Context?, p1: Intent?) {
Toast.makeText(activity, R.string.download_complete_msg, Toast.LENGTH_SHORT).show()
}
}
suspend private fun downloadMedia() {
downloadManager = context.getSystemService(Context.DOWNLOAD_SERVICE) as DownloadManager
...
downloadedFileId = downloadManager.enqueue(request)
}
とコールバックメソッドが
onRequestPermissionsResult
あるonDownloadComplete
どのように私はそうMediaDownloadクラスに移動することができますそれは再利用可能なものですか?