我正在开发一个通过蓝牙发送/接收数据的安卓应用程序。
我有一个在一个片段中有一个连接按钮和一个断开按钮的活动,以及一个没有包含所有蓝牙方法的 UI 的片段。
当按下连接按钮时,我调用fragment.bluetoothConnect()
以启动连接过程。这个过程运行良好,直到用户旋转屏幕。当他们旋转屏幕然后尝试启动连接时,会引发空指针异常。
引发空异常的变量是onResume()
在蓝牙片段中的方法期间分配给的三个变量。我曾尝试将它们移至onCreate()
但onAttach()
没有成功。
在蓝牙片段 onResume 方法中,我有以下代码行:
@Override
public void onResume() {
super.onResume();
appContext = getActivity().getApplicationContext(); //Get the activity context
btDeviceArray = new ArrayList<BluetoothDevice>();
btDeviceNames = new ArrayList<String>();
if (appContext == null)
Log.d(BTTAG,"appContext is null ");
else
Log.d(BTTAG,"appContext is not null");
}
当屏幕旋转时,Logcat 打印行“ appContext is not nul
l”表示 appContext 已分配,但是在另一种方法中我尝试相同的测试,我得到“appContext is null”