首页 > 解决方案 > 方法不会覆盖其超类中的方法并且无法解析符号

问题描述

在 Override 中,我收到“方法不覆盖其超类中的方法”错误。我还在 super.onResume () 中得到“onResume 无法解析方法”错误;

它在 MainActivity 上工作,但是当我将代码移动到服务类时,我收到了这个错误。

如你看到的:

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();
    }
}

标签: javaandroidoverriding

解决方案


AService不是Activity,这就是为什么这些方法不能被覆盖。您可以安全地删除它们,而必须让Activity实施它们。当 a 时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) {

    }
}

推荐阅读