我怎么知道从服务中可见片段

Yur*_*kiy 1 android android-service android-fragments google-cloud-messaging

我正在使用GCM Cloud Listener Service从我的服务器捕获一些通知并通过状态栏显示它 NotificationCompat

出于某种原因,如果我的片段(包含一些可更新项目的列表)现在显示,我不会显示我的通知.

检查的最佳方法是从现在可见的片段CloudListenerService

我想我可以Application用于存储片段的当前状态:

在应用程序类中:

 public class ClientApplication extends Application {    
        public static WeakReference<Fragment> currentFragment;
Run Code Online (Sandbox Code Playgroud)

在我的Fragment:

@Override
public void onResume() {
    ClientApplication.fragment = new WeakReference<>(this);

    super.onResume();
}

@Override
public void onPause() {
    ClientApplication.fragment = null;
    super.onPause();
}
Run Code Online (Sandbox Code Playgroud)

在我的Cloud listener service:

if(ClientApplication.fragment.get() != null && ClientApplication.fragment.get().isVisible()) {
    dosth();
Run Code Online (Sandbox Code Playgroud)

小智 5

在片段中:添加此内容

public MyFragment extends Fragment {

public  static boolean active = false;
@Override
public void onStart() {
    super.onStart();
    active = true;
}

@Override
public void onStop() {
    super.onStop();
    active = false;
}
Run Code Online (Sandbox Code Playgroud)

在服务中:

if (MyFragment.active) {
       //DO STUFF
}
Run Code Online (Sandbox Code Playgroud)

}