2013-07-01 11 views
22

Ich habe eine FragmentActivity, einige Fragmente und einen Dienst, der im Hintergrund ausgeführt wird. Es ist möglich, vom Dienst zu überprüfen, ob ein bestimmtes Fragment sichtbar ist?Android: Überprüfen, ob ein Fragment sichtbar ist

+5

Es ist nicht wirklich ein doppelt vorhanden ist, weil die andere Frage im Rahmen eines ViewPager gefragt wird, und die Antworten, den Kontext reflektieren. Dies ist eine allgemeinere Frage. – awy

+1

Dies ist kein Duplikat. –

+0

Die Lösung, die am besten für mich funktionierte, war http://stackoverflow.com/a/6751537/1816603 –

Antwort

5

Überprüfen Sie den Code unten:

public class MyFragment extends Fragment 
      @Override 
      public void setMenuVisibility(final boolean visible) { 
       super.setMenuVisibility(visible); 
       if (visible) { 
        ... 
       } 
      } 

Es ist von this thread. Oder Sie können auch this one überprüfen.

16
public boolean isFragmentUIActive() { 
    return isAdded() && !isDetached() && !isRemoving(); 
} 

Macht den Trick.

+0

Das gibt false zurück, wenn ich es aus dem Dienst rufe, aber vielleicht mache ich etwas falsch. – user2538848

46

Check if(YourFragment.this.isVisible())

+1

Wie in einer Aktionsleiste mit Registerkarten? Die Navigation ist in diesem Fragmentschema gestört. – Skynet

+0

Wie navigiert die Navigation? Was willst du erreichen? –

+0

Ich habe eine Aktionsleiste Tabbed-Aktivität, Fragmente bestehen aus Tabs, ich habe eine Schaltfläche in der Aktionsleiste, die einmal gedrückt, navigiert zu einem anderen Fragment sagen "Info über die App". Sobald der Benutzer zu den Informationen navigiert, deaktiviere ich ihn, so dass er nicht mehr redundant aufgerufen wird, dann aktiviere ich ihn erneut, wenn er gedrückt wird, aber sag, wenn der Benutzer zur Info navigiert (die Information wird deaktiviert, bis die Rücktaste gedrückt wird), aber ich möchte Aktivieren Sie es erneut, wenn nicht gedrückt, sondern zwischen den Registerkarten navigiert wird. – Skynet

Verwandte Themen