记录2个Android Ble蓝牙开发容易导致内存泄漏的地方:
-
蓝牙扫描
当BluetoothAdapter.LeScanCallback作为内部类时要定义成static,如果回调内部需要用到activity的引用,要使用弱引用包裹起来。参考:It leaks when I startLeScan in onCreate and stopLeScan in onDestroy
-
蓝牙连接
ble蓝牙连接时,需要传入一个context作为参数,BluetoothGatt connectGatt(Context context, boolean autoConnect, BluetoothGattCallback callback),这个context使用getApplicationContext()获取,可以有效避免内存泄漏。
博客记录了Android Ble蓝牙开发中易导致内存泄漏的两个地方。蓝牙扫描时,若BluetoothAdapter.LeScanCallback作为内部类需定义成static,回调内用activity引用要用弱引用包裹;蓝牙连接时,传入特定获取的context可避免内存泄漏。
6206

被折叠的 条评论
为什么被折叠?



