我使用条形码扫描仪扫描一些代码。为此,我将条形码扫描仪中的扫描动作称为“意图”。

问题是我想在我的主要活动中通过2种不同的方法将其发送以用于不同的目的(不同的代码类型扫描)。由于我只有一个onActivityResult()答案,如何区分Intent调用的起始位置?

我可以使用一些标志或标签或其他东西吗?

最佳答案

您可以在开始活动时提供requestCode。覆盖onActivityResult时,这将被提供回来。这样,您可以区分请求。

private static final int METHOD_1_ID = 1;
private static final int METHOD_2_ID = 2;

private void sendIntentFromMethod2(){
    startActivityForResult(yourIntent, METHOD_2_ID);
}

private void sendIntentFromMethod1(){
    startActivityForResult(yourIntent, METHOD_1_ID);
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data){
   if (requestCode == METHOD_1_ID){
        // ...
   }else if(requestCode == METHOD_2_ID){
        // ...
   }
}

关于android - 识别发送 Intent 的位置,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12053678/

10-10 12:50