Классы утилит в Android, AsyncTask и слабой связи, пожалуйста, сообщите

Я пытался найти какую-либо дискуссию на эту тему, но у меня нетпока не нашел ничего полезного. Поэтому я решил пойти дальше и опубликовать это.

Так что мой запрос о лучших практиках Android. Я создаю простое приложение, которое вызывает конечную точку RESTful, анализирует загруженный JSON и показывает результаты в некоторых фрагментах, содержащихся в действии.

У меня есть обычайполезность" класс, расширяющий AsyncTask. В методе doInBackground я делаю запрос, сохраняю ответ в виде строки и т. Д. (Довольно простые вещи).

Теперь я понимаю, что в AsyncTask есть два других метода - onPreExecute и onPostExecute. Если то, что я исследовал онлайн, правильно, то эти методы - то, где я должен иметь возможность взаимодействовать с пользовательским интерфейсом, передавая свой контекст в этот служебный класс, находя представление по идентификатору, устанавливая текст поля или что-то еще, что я хочу сделать.

Чтобы'с мой вопрос о. Какова лучшая практика вокруг этого?

В настоящее время мой служебный класс, который расширяет AsyncTask и делает вызов веб-службы, имеет закрытую переменную-член:

    private FragmentActivity mActivityContext;

И затем, чтобы взаимодействовать с пользовательским интерфейсом, я делаю что-то вроде этого:

@Override
protected  void onPreExecute()
{
    super.onPreExecute();
    android.support.v4.app.FragmentManager fm = mActivityContext.getSupportFragmentManager();
    MainActivity.PlaceholderFragment fragment = (MainActivity.PlaceholderFragment)fm.findFragmentByTag("PlaceholderFragment");

    if (fragment != null)
    {
        TextView textView = (TextView)fragment.getView().findViewById(R.id.my_custom_field);
        textView.setText("This field was updated through onPreExecute!");
    }
}

Хотя до сих пор это работает нормально, моя проблема в том, должен ли служебный класс обращаться к менеджеру фрагментов действия, на которое он ссылается? Должен ли он иметь ссылку на деятельность? И используя диспетчер фрагментов, служебный класс должен знать тег фрагмента. Это н'• очень модульный или слабосвязанный подход. Является ли решение столь же простым, как просто передача фрагмента тега, когда я создаю экземпляр служебного класса, вместо того, чтобы задавать его жестко, как сейчас? Или есть лучший альтернативный маршрут?

Ответы на вопрос(2)

Ваш ответ на вопрос