Я создаю прототип приложения для Android, который работает следующим образом:Дизайн сетевой утилиты в приложении для Android
Когда пользователи запускают приложение, они могут просматривать список заголовков статей. Когда они нажимают на одну из них, приложение переключается на другую активность, содержащую содержимое статьи и т. Д. Пользователи также могут публиковать статью, когда они находятся в списке заголовков статей.
Я пытаюсь создать класс утилиты, скажем ServerConnect.java, для обработки всех запросов и ответа REST. В начале класс имеет 3 общедоступных статических метода для отправки запросов различного назначения.
1. requestArticleList
2. requestArticleContent
3. userSendArticle (пользователь добавить новую статью)
Тогда я узнаю, что я просто не могу назвать ServerConnect.requestArticleList(), как Android запрещает поведение сети на UI потоке. Поэтому я меняю класс ServerConnect на класс extends AsyncTask
. И положите requestArticleList() в doInBackground(), затем делайте такие вещи, как new ConnectServer().execute()
Ну, это дает мне то, что я, когда я приветствую приложение и запрашиваю список статей. Тем не менее, моя проблема заключается в том, что этот класс ConnectServer может выполнять requestArticleList, поскольку он жестко закодирован в doInBackground @Override protected String doInBackground(Location userLocation) { return requestArticleList(userLocation); }
)
Есть ли какие-либо способы, которыми я могу обрабатывать все эти методы 3 как открытый статический метод в одном классе утилиты?
Спасибо за ваше терпение за такую длинную историю.
В моей системе requestArticleList и requestArticleContent выполняют практически то же самое, за исключением того, что предыдущий отправляет местоположение пользователя, а второй отправляет идентификатор статьи. поэтому я не хочу создавать другой класс только для метода requestArticleContent. Какие-либо предложения? – Yao
Вы не должны бояться создавать новый класс для каждой задачи. Меньший класс легче читать и поддерживать. Но если вы не убедили, используйте метод потока сверху. –