Android 2个不同活动的OnActivityResult
我试图在同一活动中初始化/打开NFC和BT模块。 我需要在继续执行任务之前启用这两个选项 我知道OnResultActivity是异步的,所以我想知道实现它的最佳方法是什么 以下是大部分代码:Android 2个不同活动的OnActivityResult,android,android-intent,android-activity,onactivityresult,Android,Android Intent,Android Activity,Onactivityresult,我试图在同一活动中初始化/打开NFC和BT模块。 我需要在继续执行任务之前启用这两个选项 我知道OnResultActivity是异步的,所以我想知道实现它的最佳方法是什么 以下是大部分代码: protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); initBT(); initNFC(); Intent nex
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
initBT();
initNFC();
Intent nextIntent;
if(SaveSharedPreference.getUserName(MainActivity.this).length() == 0)
{
nextIntent = new Intent(MainActivity.this, LoginActivity.class);
}
else
{
nextIntent = new Intent(MainActivity.this, MainMenuActivity.class);
}
startActivity(nextIntent);
finish();
}
private void initBT() {
if(BTModule.GetInstance().initBT().equals(Constants.eBluetoothStatus.BT_DISABLED)){
Intent enableBtIntent = new Intent(BTModule.GetAdapter().ACTION_REQUEST_ENABLE);
startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);
}
}
private void initNFC(){
mNFCState = NFCModule.initNFC(this);
if(mNFCState == eNFCStatus.NFC_NOT_SUPPORTED){
Toast.makeText(this, "NFC is not suppoeted for this device", Toast.LENGTH_LONG).show();
}
else if(mNFCState == eNFCStatus.NFC_DISABLED){
Intent nfcIntent;
if(android.os.Build.VERSION.SDK_INT >= 16){
nfcIntent = new Intent(android.provider.Settings.ACTION_NFC_SETTINGS);
}
else{
nfcIntent = new Intent(android.provider.Settings.ACTION_WIRELESS_SETTINGS);
}
startActivity(nfcIntent);
Toast.makeText(this, "Please enable NFC", Toast.LENGTH_LONG);
}
else{
Toast.makeText(this, "NFC is up and running", Toast.LENGTH_LONG).show();
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(resultCode == eBluetoothStatus.BT_OK.ordinal()){
Toast.makeText(this, "BT is up and running", Toast.LENGTH_LONG).show();
return;
}
}
}
由于我是新手,如果我有任何错误,请随时纠正我:)
谢谢 在initNFC方法中使用startActivityForResult而不是startActivity。还定义两个布尔变量,如isNfcEnabled和isBtEnabled。在onActivityResult方法中检查那些布尔值。如果这两个选项都是启用的,则执行您想要的任何操作