Android中的startActivityForResult(意图、请求代码)
我认为,我们添加请求代码作为参数,以确定哪个子活动(从父活动开始)返回结果 但我假设(可能是错误的ofc)在任何时间点,应用程序中只有一个活动可用…对吗Android中的startActivityForResult(意图、请求代码),android,android-intent,Android,Android Intent,我认为,我们添加请求代码作为参数,以确定哪个子活动(从父活动开始)返回结果 但我假设(可能是错误的ofc)在任何时间点,应用程序中只有一个活动可用…对吗 那么为什么我们需要第二个参数呢?在我看来,这是第二个只用来验证新活动是否成功完成的参数。因此,您想知道,例如,如果登录在第二个活动中成功,您可以传递错误代码或成功代码。但是,您不喜欢第二个参数使用此方法: void startActivity(Intent intent) 希望能有所帮助。在我看来,这是第二个唯一能验证新活动是否成功完成的方法
那么为什么我们需要第二个参数呢?在我看来,这是第二个只用来验证新活动是否成功完成的参数。因此,您想知道,例如,如果登录在第二个活动中成功,您可以传递错误代码或成功代码。但是,您不喜欢第二个参数使用此方法:
void startActivity(Intent intent)
希望能有所帮助。在我看来,这是第二个唯一能验证新活动是否成功完成的方法。因此,您想知道,例如,如果登录在第二个活动中成功,您可以传递错误代码或成功代码。但是,您不喜欢第二个参数使用此方法:
void startActivity(Intent intent)
希望它能有所帮助。您有一个活动A。从中您可以使用请求代码调用活动B。或者使用不同的请求代码c1调用活动C。因此,当您从B或C返回时,您通过请求代码知道从哪个位置返回 在B中,您做了一些事情并返回到A。有时您决定在B中所做的是“取消”,并对其进行标记,以便将结果代码设置为“取消”。其他时候,你决定你所做的是一种“按下OK”,所以你用结果代码OK来标记它。然后回到一个新的时代,你可以根据这些结果做任何你需要做的事情
您可以使用相同的请求代码调用活动B和C,但是您将无法区分返回到A的是哪一个。您有一个活动A。您可以使用请求代码调用活动B。或者使用不同的请求代码c1调用活动C。因此,当您从B或C返回时,您通过请求代码知道从哪个位置返回 在B中,您做了一些事情并返回到A。有时您决定在B中所做的是“取消”,并对其进行标记,以便将结果代码设置为“取消”。其他时候,你决定你所做的是一种“按下OK”,所以你用结果代码OK来标记它。然后回到一个新的时代,你可以根据这些结果做任何你需要做的事情 您可以使用相同的请求代码调用活动B和C,但您将无法区分返回到A的活动。如中所述: 对于-
public void startActivityForResult(Intent-Intent,int-requestCode)
integer参数是标识请求的“请求代码”。
当您收到结果意图时,回调将提供相同的结果
请求代码,以便您的应用程序能够正确识别结果和
确定如何处理它
以身作则-
您希望启动允许用户选择联系人的活动,然后使用请求代码,如:
static final int PICK_CONTACT_REQUEST = 1; // The request code
...
private void pickContact() {
Intent pickContactIntent = new Intent(Intent.ACTION_PICK, Uri.parse("content://contacts"));
pickContactIntent.setType(Phone.CONTENT_TYPE); // Show user only contacts w/ phone numbers
startActivityForResult(pickContactIntent, PICK_CONTACT_REQUEST);
}
因此,当被调用的活动将结果返回给调用方活动时,调用方活动将
通过它将从被调用的活动接收的请求代码来识别结果。如中所述:
对于-public void startActivityForResult(Intent-Intent,int-requestCode)
integer参数是标识请求的“请求代码”。
当您收到结果意图时,回调将提供相同的结果
请求代码,以便您的应用程序能够正确识别结果和
确定如何处理它
以身作则-
您希望启动允许用户选择联系人的活动,然后使用请求代码,如:
static final int PICK_CONTACT_REQUEST = 1; // The request code
...
private void pickContact() {
Intent pickContactIntent = new Intent(Intent.ACTION_PICK, Uri.parse("content://contacts"));
pickContactIntent.setType(Phone.CONTENT_TYPE); // Show user only contacts w/ phone numbers
startActivityForResult(pickContactIntent, PICK_CONTACT_REQUEST);
}
因此,当被调用的活动将结果返回给调用方活动时,调用方活动将
通过它将从被调用的活动接收的请求代码来识别结果。当我想要关闭许多打开的活动时,我通常使用“startActivityForResult(Intent,Requestcode)”。例如:
startActivityForResult(myIntent,0);
当您调用finish()时,它将只关闭当前活动,您将看到最后打开的活动
假设您打开了活动A,从A打开了B,然后是C,然后是D,假设在internet连接错误时,您必须关闭C和D并返回到活动B。u设置结果:
setResult(100);
在要结束的活动中(示例C),添加:
因此,在IOException中捕获时,您只需将结果设置为100并完成活动
希望它能帮助您:)当我想关闭许多已打开的活动时,我通常使用“startActivityForResult(Intent,Requestcode)”。例如:
startActivityForResult(myIntent,0);
当您调用finish()时,它将只关闭当前活动,您将看到最后打开的活动
假设您打开了活动A,从A打开了B,然后是C,然后是D,假设在internet连接错误时,您必须关闭C和D并返回到活动B。u设置结果:
setResult(100);
在要结束的活动中(示例C),添加:
因此,在IOException中捕获时,您只需将结果设置为100并完成活动
希望它能帮助你:)