Метод не переопределяет метод из своего суперкласса и не может разрешить символ - PullRequest
0 голосов
/ 25 января 2020

В Переопределении я получаю ошибку «Метод не переопределяет метод из своего суперкласса». Я также получаю ошибку «onResume не может разрешить метод» в super.onResume ();

Он работал на MainActivity, но когда я переместил код в класс Service, я получил эту ошибку.

Как видите:

public class Servis extends Service implements SensorEventListener{

    SensorManager mgr;
    Sensor temp;
    TextView text;
    StringBuilder msg = new StringBuilder(2048);
    MediaPlayer mediaPlayer;

    @Nullable
    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }

    @Override
    public void onCreate() {
        super.onCreate();
        mediaPlayer = MediaPlayer.create(Servis.this, R.raw.warning);
        mgr = (SensorManager) this.getSystemService(SENSOR_SERVICE);
        temp = mgr.getDefaultSensor(Sensor.TYPE_AMBIENT_TEMPERATURE); }

    @Override
    protected void onResume() {
        mgr.registerListener(this, temp, SensorManager.SENSOR_DELAY_NORMAL);
        super.onResume();
    }

    @Override
    protected void onPause() {
        mgr.unregisterListener(this, temp);
        super.onPause();
    }

    public void onAccuracyChanged(Sensor sensor, int accuracy) {

    }

        public void onSensorChanged(SensorEvent event) {
            float fahrenheit = event.values[0] * 9 / 5 + 32;
            if(fahrenheit < 68)
                mediaPlayer.start();
    }
}

Ответы [ 2 ]

2 голосов
/ 25 января 2020

A Service не является Activity, поэтому эти методы нельзя переопределить. Вы можете безопасно удалить их и вместо этого позволить Activity реализовать их. Когда Service implements SensorEventListener, это будет выглядеть примерно так:

public class Servis extends Service implements SensorEventListener {

    @Override
    public void onCreate() {

    }
    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {

    }
    @Override
    public void onDestroy() {

    }
    @Override
    public IBinder onBind(Intent intent) {

    }


    @Override
    public void onAccuracyChanged(Sensor sensor, int accuracy) {

    }    
    @Override
    public void onSensorChanged(SensorEvent event) {

    }
}
0 голосов
/ 25 января 2020

Как отмечалось выше, класс Services не включает в себя методы, которые вы не выполняете. См. Сервисная документация

Метод закрывания, который вы можете использовать для переопределения

onStart(Intent intent, int startId)

Возможно, он наиболее близок к OnResume

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...