一、蓝牙的开启方式
//会跳转到设置界面
1、startActivity(new Intent(Settings.ACTION_BLUETOOTH_SETTINGS));
//以弹出对话框的形式提问,重写onActivityResult方法接收返回结果
2、startActivityForResult(new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE), 100);
二、屏幕旋转时避免Activity重新创建
- <activity android:name="com.looper.testbeacontool"
- android:configChanges="keyboardHidden|orientation|screenSize"> >
- </activity>
此时会Activity不会销毁重建,Activity中的onConfigurationChanged的方法将会被调用
三、关于Activity的生命周期
从当前Activity然后跳转到另外一个Activity时(假设当前Activity是AActivity,另外一个Activity是BActivity)
执行顺序是:(AActivity)onPause -> (BActivity)onCreate -> (BActivity)onStart -> (BActivity)onResume -> (AActivity)onStop
其中是否调用(AActivity)onStop与BActivity有关,当BActivity是透明的或者用的dialog主题时(即AActivity仍处于可见状态),(AActivity)onStop将不会被调用
四、关于设置全屏
//这种方法设置全屏会导致点击事件被屏蔽
this.getWindow().setFlags(WindowManager.LayoutParams.TYPE_STATUS_BAR,WindowManager.LayoutParams.TYPE_STATUS_BAR);
//这种方式不会屏蔽事件
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
五、jni与java层相互传递byte数组
参考:http://blog.csdn.net/xinchen200/article/details/25333047
java层通过ByteBuffer.allocateDirect(int c)方法申请内存,通过ByteBuffer.get[byte[] data]获取数据;
六、使用第三方.so库
eclipse:将对应平台的动态库拷贝到libs目录下(没有的话手动创建),在src目录下创建动态库中对应包名、类名java类文件
Android studio:将对应平台的动态库拷贝到main目录下的jniLibs目录下,在java目录下创建动态库中对应包名、类名java类文件(此时Android studio以project形式打开项目)