@Dutymy

Как создать статический класс?

Здравствуйте, мне нужно сгрупировать функции, к примеру в класс.
static public class overlayService {
        static private Intent overlayServiceIntent = new Intent(getApplicationContext(), OverlayService.class);
        static public boolean overlayBound;

        static public void start() {
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
                startForegroundService(overlayServiceIntent);
            } else {
                startService(overlayServiceIntent);
            }
        }

        static public void bind() {
            bindService(overlayServiceIntent, overlayConnection, Context.BIND_AUTO_CREATE);
        }

        static public void unbind() {
            unbindService(overlayConnection);
        }

        static public void stop() {
            stopService(overlayServiceIntent);
        }
    }

За пределами класса есть
ServiceConnection overlayConnection = new ServiceConnection() {
        @Override
        public void onServiceConnected(ComponentName className, IBinder service) {
            overlayService.overlayBound = true;
        }

        @Override
        public void onServiceDisconnected(ComponentName arg0) {
            overlayService.overlayBound = false;
        }
    };

Но компилятор ругается, что я сделал не так))
  • Вопрос задан
  • 158 просмотров
Решения вопроса 1
zagayevskiy
@zagayevskiy Куратор тега Java
Android developer at Yandex
Статический класс имеет смысл только когда он расположен внутри другого класса. В этом случае он не будет иметь доступа к нестатическим полям объемлющего класса.
Поэтому static здесь просто лишнее.

С другой стороны, непонятно, что ты хочешь сделать. Выглядит так, что у тебя есть какой-то this, на котором ты вызываешь методы getApplicationContext, bindService и тд. Это активити? В лбом случае это какой-то контекст, и меня сразу настораживает сочетание слов "static" и "Context". Скорее всего, ты что-то делаешь не так, и все эти твои методы должны быть просто приватными методами твоей активити в простейшем случае.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы