2017-02-22 30 views
0

Я работаю с фрагментами и ящиком навигации. У меня есть два фрагмента и менеджер фрагментов, чтобы их перерабатывать, когда я нажимаю на пункты меню в навигационном ящике. Я также получаю данные с сервера в одном из фрагментов.Как убедиться, что данные, полученные с сервера, не извлекаются повторно при каждом вызове фрагмента

Однако каждый раз, когда я повторно инициализую фрагмент, вызов на сервер происходит снова. Я хотел бы знать, есть ли способ, чтобы я мог убедиться, что вызов сервера происходит только в начале и когда я нажимаю кнопку обновления.

ответ

0

Я хотел бы знать, есть ли способ, что я могу убедиться, что призыв сервера происходит только в самом начале, и когда я нажимаю Обновлять кнопки.

Да, когда вы нажимаете кнопку обновления, используйте ClickListener для вызова вызова.

Если вы хотите, чтобы вызов выполнялся только при создании фрагмента, вы можете обратиться к жизненному циклу фрагмента. Лучше всего поместить этот вызов в метод onCreate().

Однако, если вы не хотите делать звонок каждый раз, когда создается фрагмент, я рекомендую вам использовать SharedPreference для сохранения информации, которая уже была сделана.

Exemple:

prefs = PreferenceManager.getDefaultSharedPreferences(this); 
     // The seconde value of method getBoolean incates the default value if constant not found 
     if (prefs.getBoolean(Constants.CALL_DONE, false)) { 
      // Make call 
      prefs.edit().putBoolean(Constants.CALL_DONE, true).apply(); 
     } 
+0

Что именно является Constants.CALL_DONE? –