方法不会覆盖其 super class 的方法并且无法解析符号
Method does not override method from its super class & cannot resolve symbol
在覆盖中,我收到 "Method does not override method from its super class" 错误。我也在 super.onResume () 中得到 "onResume cannot resolve method" 错误;
它在 MainActivity 上工作,但当我将代码移至服务 class 时,出现此错误。
As you can see:
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();
}
}
A Service
is not an 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) {
}
}
如上所述,服务 class 不包含您使用的方法,因此无需执行覆盖。参考Service documentation
您可能希望覆盖的关闭方法
onStart(Intent intent, int startId)
它可能是最接近 OnResume 的
在覆盖中,我收到 "Method does not override method from its super class" 错误。我也在 super.onResume () 中得到 "onResume cannot resolve method" 错误;
它在 MainActivity 上工作,但当我将代码移至服务 class 时,出现此错误。
As you can see:
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();
}
}
A Service
is not an 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) {
}
}
如上所述,服务 class 不包含您使用的方法,因此无需执行覆盖。参考Service documentation
您可能希望覆盖的关闭方法
onStart(Intent intent, int startId)
它可能是最接近 OnResume 的