Закрытие сокета на стороне сервера на socket.io?

В случаях, когда нам нужно проверить из нашего собственного сервиса / background-thread, находится ли наше приложение на переднем плане или нет. Вот как я его реализовал, и он отлично подходит для меня:

public class TestApplication extends Application implements Application.ActivityLifecycleCallbacks {

    public static WeakReference<Activity> foregroundActivityRef = null;

    @Override
    public void onActivityStarted(Activity activity) {
        foregroundActivityRef = new WeakReference<>(activity);
    }

    @Override
    public void onActivityStopped(Activity activity) {
        if (foregroundActivityRef != null && foregroundActivityRef.get() == activity) {
            foregroundActivityRef = null;
        }
    }

    // IMPLEMENT OTHER CALLBACK METHODS
}

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

if(TestApplication.foregroundActivityRef!=null){
    // APP IS IN FOREGROUND!
    // We can also get the activity that is currently visible!
}
16
задан Derek 20 September 2011 в 23:25
поделиться