我试图弄清楚当我的应用程序从onCreate转换为onResume时,为什么我得到NullPointerException

时间:2012-06-06 00:03:04

标签: android onresume

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    BluetoothManager btManager = new BluetoothManager(this);
    setContentView(R.layout.main);

    if (!btManager.isEnabled()) {
        btManager.requestBluetoothEnable();
        discoveryStarted = false;

    } else {
        if (btManager.isDeviceSetNullOrEmpty()) {
            btManager.startDiscovery();
            discoveryStarted = true;
        }

    }

}

@Override
public void onResume(){
    super.onResume();

    if( btManager.isEnabled() && discoveryStarted == false ){

我在这里得到一个NullPointer异常,即使我初始化了我的btManager类(一些蓝牙类的包装。

1 个答案:

答案 0 :(得分:0)

BluetoothManager btManager = new BluetoothManager(this);

仅在onCreate中声明为本地。

尝试将BlueToothManager btManager;作为一个类范围的字段(在类声明下面)。然后,在oncreate里面:

btManager = new BluetoothManager(this); 

然后,看看你是否可以在onResume内部没有nullpointer的情况下访问它。