2016-06-28 1 views
0

서버에 대한 모든 데이터 요청에서 토큰 변경과 관련된 안드로이드 앱을 만들고 있습니다. 따라서 매번 서버에 새 토큰을 보내야합니다. 그렇지 않으면 사용자가 다시 로그인해야합니다.TabLayout이 활성화 된 경우에만 조각 내에서 특정 작업을 수행하는 방법?

요청이 동시에 발생하는 탭 레이아웃에 문제가 있습니다. 탭이 활성화 된 경우에만 서버에 요청을 보내는 방법이 있습니까?

추신. 나는 2 초 후에 요청을 보내는 핸들러를 사용해 보았지만 효과적이지 않다. 선택 탭에서 조각을 열 경우,

public class Your class extends Fragment { 

    @Override 
    public void setMenuVisibility(final boolean visible) { 
     super.setMenuVisibility(visible); 

     if (visible) 
     { 
      //launch task 
     } 
    } 
} 
+0

이것은 'TabLayout'과 관련이 없습니다. 사실 동기화 된 API 요청을 만드는 것과 관련이 있습니다. 그렇지 않니? – Sufian

+0

그리고 나는 당신이 당신의'TabLayout'이 활성화되어 있는지/선택되어 있는지를 검사함으로써 확신 할 수 없다고 확신합니다. 예를 들어, 동일한 탭에서 요청할 수있는 버튼이 두 개있는 경우 어떻게해야합니까? – Sufian

+0

두 개의 탭이 있습니다. 첫 번째 탭이 처음부터 표시되므로 요청은 "onCreate"메드에 보내집니다. 그러나 두 번째 탭에서는 요청이있을 때만 요청을 보내야합니다. –

답변

0

는이 조각 메소드를 오버라이드 (override) 할 수 있습니다. 아래 메서드는 선택된 탭과 해당 단편이 완전히 표시 될 때만 호출됩니다.

public class MyFragment extends Fragment{ 
    .................. 
    .................. 

    @Override 
    public void setUserVisibleHint(boolean isVisibleToUser) { 
     super.setUserVisibleHint(isVisibleToUser); 

      if (isVisibleToUser) { 

       //your code here 

      } 
    } 

} 
+0

그것은 일했다! 대단히 감사합니다 .... : D –

+0

당신을 환영합니다;) – David

0

당신이 당신의 작업을 호출 할 경우 당신의 조각에서 방법 아래 사용

관련 문제