Size: a a a

Android Developers

2021 February 13

JF

Jorik Fat in Android Developers
Eyed Shovel
Имею такой код. При запуске ничего не выводится, если закомментировать walk и поставить в text что-нибудь другое, всё работает. При этом, в эмуляторе этот код тоже работает. Разрешение на чтение выдаю
а чего хотите добиться?
источник

JF

Jorik Fat in Android Developers
можно от кода, можно по жизни
источник

D

Denis in Android Developers
Eyed Shovel
Имею такой код. При запуске ничего не выводится, если закомментировать walk и поставить в text что-нибудь другое, всё работает. При этом, в эмуляторе этот код тоже работает. Разрешение на чтение выдаю
На каком андроиде не работает?
источник

ES

Eyed Shovel in Android Developers
Denis
На каком андроиде не работает?
На 9 работает и на 9 не работает. Мне показалось, что walk забивает поток, сделал так:
Thread {
           File("/sdcard/Android/data/").walk().forEach {
               runOnUiThread {
                   if (outputView != null) {
                       outputView.text  = outputView.text.toString() + "$it \n"
                   }
               }
           }
       }.start()
Теперь файлы выводит, но всё выглядит намертво зависшим. А оно так и есть
источник

ES

Eyed Shovel in Android Developers
Jorik Fat
можно от кода, можно по жизни
Пройтись по директории и вывести все файлы мне в textView
источник

D

Denis in Android Developers
Eyed Shovel
На 9 работает и на 9 не работает. Мне показалось, что walk забивает поток, сделал так:
Thread {
           File("/sdcard/Android/data/").walk().forEach {
               runOnUiThread {
                   if (outputView != null) {
                       outputView.text  = outputView.text.toString() + "$it \n"
                   }
               }
           }
       }.start()
Теперь файлы выводит, но всё выглядит намертво зависшим. А оно так и есть
Ты пытаешься обновить ui из другого потока. Так низя
источник

JF

Jorik Fat in Android Developers
Denis
Ты пытаешься обновить ui из другого потока. Так низя
там runOnUiThread
источник

EA

Evgeny AcindaZ in Android Developers
Почему бы просто не сделать listFiles()?
источник

EA

Evgeny AcindaZ in Android Developers
for (final File fileEntry : folder.listFiles()) { if (fileEntry.isDirectory()) { listFilesForFolder(fileEntry); } else { System.out.println(fileEntry.getName()); } }
источник

D

Denis in Android Developers
Jorik Fat
там runOnUiThread
А, соре, не увиднл
источник

ES

Eyed Shovel in Android Developers
Evgeny AcindaZ
Почему бы просто не сделать listFiles()?
Да на финальную версию пофиг, мне интересно, почему это не работает. Я, вроде, даже в отдельный поток вывел, что ему не так?
источник
2021 February 14

JF

Jorik Fat in Android Developers
Eyed Shovel
Да на финальную версию пофиг, мне интересно, почему это не работает. Я, вроде, даже в отдельный поток вывел, что ему не так?
сделайте построчный вывод в консоль
источник

ES

Eyed Shovel in Android Developers
Jorik Fat
сделайте построчный вывод в консоль
Не, оно уже выводит с отдельным потоком. Но всё зависло
источник

ES

Eyed Shovel in Android Developers
У меня там ScrollView, так я даже полистать не могу
источник

EA

Evgeny AcindaZ in Android Developers
Попробуй
try (Stream<Path> paths = Files.walk(Paths.get(dirName), 2)) { paths.forEach(System.out::println); }
источник

JF

Jorik Fat in Android Developers
Eyed Shovel
Не, оно уже выводит с отдельным потоком. Но всё зависло
так Вы сможете увидеть скорость считывания
источник

JF

Jorik Fat in Android Developers
Evgeny AcindaZ
Попробуй
try (Stream<Path> paths = Files.walk(Paths.get(dirName), 2)) { paths.forEach(System.out::println); }
в android есть стримы?
источник

EA

Evgeny AcindaZ in Android Developers
источник

EA

Evgeny AcindaZ in Android Developers
Короче, да, есть
источник

ES

Eyed Shovel in Android Developers
Evgeny AcindaZ
Попробуй
try (Stream<Path> paths = Files.walk(Paths.get(dirName), 2)) { paths.forEach(System.out::println); }
У меня котлин же
источник