重力感应 感应器编程
a.获取系统服务
SensorManager sensormanager = (SensorManager)getSystemSeriver(SENSOR_SERVICE);
b.通过SensorManager对象获取相应的Sensor类型的对象
SensorManager sensorObject = sensormanager.getDefaultSensor(sensor Type);
c.声明一个SensorEventListener 对象用于侦听Sensor 事件,并重载onSensorChanged方法
SensorEventListener sensorListener = new SensorEventListener(){
};
d.注册相应的SensorService
sensormanager.registerListener(sensorListener, sensorObject, Sensor TYPE);
e.销毁相应的SensorService
sensormanager.unregisterListener(sensorListener, sensorObject);
f: SensorListener 接口是传感器应用程序的中心。
onSensorChanged(int sensor,float values[])
该方法在传感器值更改时调用。
该方法只对受此应用程序监视的传感器调用(更多内容见下文)。该方法的参数包括:一个整数,指示更改的传感器;一个浮点值数组,表示传感器数据本身。有些传感器只提供一个数据值,另一些则提供三个浮点值。方向和加速表传感器都提供三个数据值。
LayoutInflater layoutInflater = (LayoutInflater)context.getSystemService(Context.Layout_inflater_service);
利用上下文对象取得布局服务
View convertView = layoutInflater.inflate(listviewItem, null);
Android aidl服务通信
远程对象Ibinder是代理对象
系统内部的服务也需要进行aidl实现
1,强制执行单任务模式
如果应用程序跳转走后再次启动的话,可能会在设备上产生多个activity的实例,会可能导致异常
确保设备上只有一个actuvity执行
android:launchMode="singleInstance"
使得所有的activity作为一个任务,共享信息非常方便
android:lanuchMode="sigleTask"
2,强制纵屏
android:screenOrientation="portrait"
强制横屏
android:screenOrientation="landscape"
在硬键盘滑出时,先前的情况还是会导致activity的关闭和重新启动,所以可以采用第三种办法,告知Android系统处理应用程序方向和键盘滑出事件,可以在activity元素属性中添加如下代码:
android:configChanges="orientation|keyboardHidden"
该方法可以单独使用,也可以和screenOrdientation属性结合在一起使用,视应用程序要求而定
3,声音转换为文本
Google功能
RecongizerIntent
4,设置线程优先级
可以在
myThread.start()
前,调用
myThread.setPriority(priority)
为线程设置不同的优先级,这里的priority不能大于常量Thread.MAX_PRIORITY(该值为10),也不能小于1
5,有时候当一个组件完成或被杀死后,开发者希望由它产生的线程也被杀死
方法一:
mythread.interrupt()
方法二:
mythread.setDaemon(true)
将所有生成的线程声明为守护线程,这样可以确保如果应用程序的主线程被杀死,那么该应用程序的所有守护线程可也以都被杀死
方法三:
可以在run()方法中使用
while(isRunning)并且从循环外部
isRunning=false的方法来杀死线程,
但是这种方法的确定是不能有效的控制线程停止的时间
6,倒数计时器
CountDownTimer
7,使用搜索键
8,使用手势
simpleongestureListener()