在覆盖中,我收到“方法未覆盖其父类(super class)中的方法”错误。我还在 super.onResume (); 中收到“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();
}
}
最佳答案
一个Service
不是Activity
,这就是为什么这些方法不能被重写。您可以安全地删除它们,而必须让 Activity
实现它们。当服务实现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) {
}
}
关于java - 方法不会覆盖其父类(super class)中的方法并且无法解析符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59911776/