0

我正在开发一个通过蓝牙发送/接收数据的安卓应用程序。

我有一个在一个片段中有一个连接按钮和一个断开按钮的活动,以及一个没有包含所有蓝牙方法的 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 null”表示 appContext 已分配,但是在另一种方法中我尝试相同的测试,我得到“appContext is null”

4

0 回答 0