Я делаю одну андроидную библиотеку. И в моей библиотеке я хочу разрешить пользователю выполнять конкретную задачу либо в фоновом режиме, либо в основном потоке.
Я хочу сделать что-то вроде этого.
1-й сценарий
MyLibabry.with(context)
.performSomeTask(<params>)
.execute();
Когда пользователь записывает вышеуказанный код фрагмента. задача должна выполняться в фоновом режиме. Поэтому я верну результат задачи с помощью любых слушателей.
Теперь рассмотрим приведенный ниже фрагмент кода.
2-й сценарий
Result result = MyLibabry.with(context)
.performSomeTask(<params>)
.get();
Теперь, когда пользователь присоединяет get() в конце инструкции. Задача должна выполняться в основном потоке и блокировать другие потоки. Поэтому результат инициализируется немедленно.
Итак, мой вопрос заключается в том, как я могу реализовать функцию, которая, если пользователь прикрепляет файл .get(), этот поток в performSomeTask()
должен запускаться в основном потоке. иначе в фоновом режиме.
Примечание. Не фокусируйтесь на возвращении результата. Я буду реализовывать его в Java Generics. Я хочу знать, как сделать код повторно используемым, чтобы при подключении пользователя .get()
он запускался в основном потоке. В противном случае этот же код должен работать на фоне. Я не хочу писать повторяющийся код.
Вы можете ссылаться на существующую библиотеку.
- AsyncTask - официальный представитель Android для выполнения фоновой задачи.
- ION - для загрузки/выгрузки файла
Итак, у двух библиотек есть одна и та же функция, и есть много другой библиотеки, которая делает то же самое, и я хочу сделать то же самое.
Будет здорово, если кто-нибудь предоставит мне небольшой пример для этого.