Получить данные из другого потока (android)

162
28 мая 2022, 02:30

Подскажите, пожалуйста, для решения задачи из темы подойдет мой код, указанный ниже? Интересует, как решается подобная задача в продакшене.

public List<User> getAll() {
        List<User> users = new ArrayList<>();
        ExecutorService executor = Executors.newSingleThreadExecutor();
        Callable<List<User>> callable = new Callable<List<User>>() {
            @Override
            public List<User> call() {
                return database.userDao().getAll();
            }
        };
        Future<List<User>> future = executor.submit(callable);        
        try {
            users = future.get();
        } catch (ExecutionException e) {
            e.printStackTrace();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        executor.shutdown();
        return users;
    }

Update

public void getAll(LoadUserCallback callback) {
        HandlerThread handlerThread = new HandlerThread("DBThread");
        handlerThread.start();
        Handler handlerNew = new Handler(handlerThread.getLooper());
        handlerNew.post(new Runnable() {
            @Override
            public void run() {
                final List<User> users = database.userDao().getAll();
                Handler handler = new Handler(Looper.getMainLooper());
                handler.post(new Runnable() {
                    @Override
                    public void run() {
                        callback.onLoad(users);
                    }
                });
            }
        });
    }
READ ALSO
com.zaxxer.hikari.pool.HikariProxyConnection cannot be cast to oracle.jdbc.OracleConnection

com.zaxxer.hikari.pool.HikariProxyConnection cannot be cast to oracle.jdbc.OracleConnection

Ошибку получаю при вызове метода, который обращается к БД через SimpleJdbcCall

191
Интеграция appsflyer SDK

Интеграция appsflyer SDK

Всем доброго дня, с Android разработкой только знакомлюсь, прошу не кидать камниРешил в свое приложение интегрировать AppsFlyer SDK для дальнейшего...

270
Переопределение переменных в дочерних классах

Переопределение переменных в дочерних классах

Насколько я понял, в объекте a будут доступны только те переменные и методы, которые есть в классе A, но запускаться они будут из класса BНо вот...

222
java наследование и private

java наследование и private

Есть 2 класса,КлассА и КлассБ ClassAjava->

176