一段代码的欣赏--------关于super.xx()方法的使用

 


import android.app.Activity;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.view.Window;
import android.view.WindowManager;

 
public class AgileBuddyActivity extends Activity {


private AgileBuddyView mAgileBuddyView;


private SensorManager mSensorManager;


private Sensor mSensor;


private SensorEventListener mSensorEventListener;


/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);           (1)
// 取消标题
requestWindowFeature(Window.FEATURE_NO_TITLE);
// 禁止屏幕休眠
getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON,
WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
// 全屏幕
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.main);
mAgileBuddyView = (AgileBuddyView) findViewById(R.id.agile_buddy);
mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
mSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
mSensorEventListener = new SensorEventListener() {
public void onSensorChanged(SensorEvent e) {
mAgileBuddyView.handleMoving(e.values[SensorManager.DATA_X]);
}


public void onAccuracyChanged(Sensor s, int accuracy) {
}
};
// 注册重力感应监听
mSensorManager.registerListener(mSensorEventListener, mSensor,
SensorManager.SENSOR_DELAY_GAME);
}


@Override
public void finish() {
// 注销重力感应监听
mSensorManager.unregisterListener(mSensorEventListener, mSensor);
super.finish();                                   (2)
}

}


android 中经常不知道复写父类的方法时,super.xx(ArgumentsSets)应该放在哪里,或是干脆可以不要?

上面这段代码给了我一个很有说服力的解释。android底层会自己去调用这些回调方法,当然父类做了一

些事情。而我们也想再在这些方法里面添加一些操作,应该放在哪里取决于具体场景。

(1)中,创建一个Activity时,我们的代码要等系统创建好了才能够很好的执行,所以应该放在

super.onCreate(savedInstance)后面;

(2)中,我们的代码希望在Activity销毁之前调用,所以需要放在super.finish()之前调用。所以我们的操作放

在super.finish()前面。

(super.finish()会调用onDestroy方法)


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值