2016-06-28 9 views
0

私はサーバーへのすべてのデータ要求でトークンの変更を含むアンドロイドアプリを開発しています。だから毎回、サーバーに新しいトークンを送る必要があります。そうしないと、ユーザーは再ログインする必要があります。TabLayoutがアクティブな場合にのみフラグメント内の特定のタスクを実行する方法は?

リクエストが同時に発生するタブレイアウトに問題があります。タブがアクティブな場合にのみ、サーバーに要求を送信する方法はありますか?

PS。私は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'がアクティブであるかどうかをチェックすることでこれを行うことができると確信していません。たとえば、同じタブでリクエストするためのボタンが2つある場合はどうなりますか? – Sufian

+0

私は2つのタブを持っています。最初のタブは最初から見えるので、リクエストは "onCreate"メソッドで送信されます。しかし、2番目のタブでは、リクエストがアクティブなときにのみ送信する必要があります。 –

答えて

0

あなたはこのフラグメントのメソッドをオーバーライドすることができます。下のメソッドは、選択したタブとそのそれぞれのフラグメントが完全に見えるときにのみ呼び出されます。

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

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

      if (isVisibleToUser) { 

       //your code here 

      } 
    } 

} 
+0

それは働いた!大変ありがとうございました....:D –

+0

歓迎です;) – David

0

、あなたのタスクを呼び出したい場所をあなたのフラグメントで方法の下に使用します。

関連する問題