弃用stop和suspend方法的原因: stop方法天生不安全,该方法终止所有未结束的方法,包括run方法。当线程终止,立即释放被它锁住的所有对象的锁。这会导致对象处于不一致的状态。当线程要终止另一个线程时,无法知道什么时候调用stop方法是安全的,什么时候导致对象被破坏,所以stop被废弃了。 suspend会经常导致死锁。如果用suspend挂起一个持有一个锁的线程,那么,该锁在恢复之前是不可用的。如果调用suspend方法的线程试图获得同一个锁,那么程序死锁:被挂起的线程等着被恢复,而将其挂起的线程等待获得锁。
由于每款设备支持的传感器Sensor类型不同,之前见过智器的产品,只有一个方向传感器。这里用一段简单的代码来列出手机中所支持的Sensor传感器类型。 package cn.madgoat.test; import java.util.List; import android.app.Activity; import android.hardware.Sensor; import android.hardware.SensorManager; import android.os.Bundle; import android.util.Log; import android.widget.ScrollView; import android.widget.TextView; public class SensorTest extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); SensorManager mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE); List<Sensor> SensorList = mSensorManager.getSensorList(Sensor.TYPE_ALL); TextView tv = new TextView(this); StringBuffer sb = new [...]
通过sqlite3操作可以修改,伪造记录太easy了
联络人(含通话记录)数据库: /data/data/com.android.providers.contacts/databases/contacts.db
…
监听SMS发送状态的例子网上虽然有,但还是太杂了不完全。自己写了个。
…