我对Java和Android都很陌生,所以要温柔:) 我试图启动ActivityForResult来启用蓝牙,但似乎主要活动一直在运行并执行getPaireddevices而没有为ActivityForresult完成的wiaitng。这里我的错误是什么?
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init();
if (BtAdapter==null){
Toast.makeText(getApplicationContext(), "No Bluetooth adapter...",0 ).show();
finish();
} else {
if (!BtAdapter.isEnabled()){
Intent intent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(intent, 1);
}
}
GetPairedDevices();
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
//super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_CANCELED){
Toast.makeText(getApplicationContext(), "too bad..", Toast.LENGTH_LONG).show();
finish();
}
}
答案 0 :(得分:0)
将GetPairedDevices();
移至onActivityResult()
像
这样的东西 @Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
//super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_CANCELED){
Toast.makeText(getApplicationContext(), "too bad..", Toast.LENGTH_LONG).show();
finish();
}
else if (resultCode == RESULT_OK)
{
GetPairedDevices();
}
这样onCreate()
可以完成,只有你启用蓝牙才会运行该功能,我相信这就是你想要的
如果您希望在null
中启用蓝牙而不是onCreate()
时运行,那么您可能希望将onCreate()
更改为
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init();
if (BtAdapter==null){
Toast.makeText(getApplicationContext(), "No Bluetooth adapter...",0 ).show();
finish();
} elseif (BtAdapter != null && !BtAdapter.isEnabled()){
Intent intent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(intent, 1);
}
else{
GetPairedDevices();
}
}
注意:强>
这只是你需要如何做的一个简单例子,因为onCreate()
将完成执行函数中的剩余代码。我没有测试它或知道你的所有代码,但这样的事情应该会有所帮助。
答案 1 :(得分:0)
如果你希望在你的子活动结束后调用你的函数GetPariedDevices你必须把你的调用放在你的 onActivityResult 函数中,如果没有,它会被调用,因为onCreate函数将继续执行其余的的句子。
希望有所帮助:)