要学习Android需要先了解android activity的生命历程,请看下图(他人博客复制):图中我们可以清晰可看到android的生命周期,onCreate() ,onStart(),onResume(),onPause(),以及onDestroy().

android studio中光线传感器解析_第1张图片

  经过几个月的学习,我才发发现这几个生命历程不仅仅只是其生命历程,在程序运行的过程中起着关键的作用。在android运行过程中android系统会根据程序的生命状态运行相应的程序,比如创建的时候运行onCreate中的方法,onCreate中可以说是android程序的主体部分,主要的实现实在其中调用与执行,当activity销毁是会执行相应的onDestroy中的方法,总之在不同的生命状态调用或执行相应的--状态方法(笔者取名),注意一下便可以更好的控制android程序的执行。

  言归正传,下面讲解android中光线传感器的简单调用。

  第一步肯定是布局文件实现:

    <--用于对传感器信息的显示-->     
       <--光线传感器数据显示-->
 
        android:id="@+id/light_data"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:textSize="20dp"        android:text="TextView"/>

  这里设置了2个文本布局(原谅我不会用这个编辑),大家可以注意一下在xml中注释的写法<........>。

其次,是程序文件:

public class MainActivity extends Activity {    SensorManager sensorManager;    Sensor sensor;    TextView sensordata;    TextView lightdata;    @Override    protected void onCreate(Bundle savedInstanceState) {             //注意状态方法        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        sensorManager=(SensorManager) this.getSystemService(SENSOR_SERVICE);        //传感器服务        sensor=sensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);               //指定传感器        StringBuffer stringBuffer=new StringBuffer();          //构建StringBuilder对象        stringBuffer.append("\n sensor name");        stringBuffer.append(sensor.getName());              //获得传感器名称        stringBuffer.append("\n power(MA)");        stringBuffer.append(sensor.getPower());             //电量消耗        stringBuffer.append("\n type");        stringBuffer.append(sensor.getType());              //类型编号        stringBuffer.append("\n version");        stringBuffer.append(sensor.getVersion());               //版本        stringBuffer.append("\n maxRange");        stringBuffer.append(sensor.getMaximumRange());        sensordata=(TextView) findViewById(R.id.sonsor_data);        lightdata=(TextView) findViewById(R.id.light_data);        sensordata.setText(stringBuffer);    }    private SensorEventListener sensorEventListener=new SensorEventListener() {        @Override        public void onSensorChanged(SensorEvent sensorEvent) {        //注意这个改变方法,会因为传感器只改变而执行            float[] value= sensorEvent.values;            lightdata.setText("light value"+value[0]);          //value包含3个值,x,y,z但对与光线传感器只有第一个值        }        @Override        public void onAccuracyChanged(Sensor sensor, int i) {        }    };    @Override    protected  void onResume(){                                 //注意状态方法        super.onResume();        sensorManager.registerListener( sensorEventListener,sensor,SensorManager.SENSOR_DELAY_NORMAL);      //注册传感器    }    @Override    protected  void onPause(){                      //注意状态方法        super.onPause();        sensorManager.unregisterListener( sensorEventListener);           //取消注册          }}
 注释写的还算清楚,看懂应该没啥大问题。执行结果如下:    android studio中光线传感器解析_第2张图片

关于Android学习,我的推荐书籍请看另一篇博客,谢谢观看!


更多相关文章

  1. Android中传感器Sensor的使用
  2. Android中去除标题,全屏,获得屏幕方向及键盘状态
  3. Android基于TextView属性android:ellipsize实现跑马灯效果的方法
  4. Android离线安装方法
  5. 丢失Android系统库或者Conversion to Dalvik format failed with
  6. Android编程简单设置ListView分割线的方法

随机推荐

  1. Android悬浮通知无效的问题
  2. Android(安卓)判断手机是否安装某个应用
  3. 无法在Android(安卓)Studio中设置断点
  4. Android(安卓)通过ViewPager实现广告轮播
  5. Android(安卓)DatePicker和TimePicker案
  6. 安卓新技术学习资料整理 常更新哦~
  7. android自定义属性attrs
  8. Android初学笔记之
  9. 快速开发android,离不开这10个优秀的开源
  10. Android(安卓)ApiDemos示例解析(80):Grap