Я хочу передать ArrayList () из одного намерения в другое намерение. Иногда размер массива будет больше 100 000. Передача такого огромного массива в android вызовет исключение времени выполнения. Есть ли альтернатива для решения этой проблемы?
Вот код для отправки Intent:
var image = ArrayList<File>()
// getAllImages() returns all image present in the device as an `ArrayList<File>`
image.addAll(getAllImages()) // add all image present in the device. Sometimes size of image will be more than 100,000
try{
val intent = Intent(applicationContext, Slider::class.java) // Slider is the receiving Intent
intent.apply {
putExtra("position", position) // sends position of selected image
putExtra("arrayList", convertfile(image)) // convertfile(image) returns ArrayList<File> as ArrayList<String>
flags = Intent.FLAG_ACTIVITY_NEW_TASK
}
startActivity(intent)
} catch (rx: java.lang.RuntimeException) {
}
Код для convertfile ():
fun convertfile(file: java.util.ArrayList<File>) : java.util.ArrayList<String> {
var temp: String
val string = java.util.ArrayList<String>()
for (j in file.indices) {
temp = file[j].path
string.add(temp)
}
return string
}
Код для получения Intent:
val position: Int = intent.getIntExtra("position", 0)
val file: ArrayList<String> = intent.getStringArrayListExtra("arrayList") as ArrayList<String>
Когда размер image
равен 100 000 android, создается исключение времени выполнения. Как решить эту проблему? Есть ли альтернативное решение для передачи огромного массива между двумя намерениями?