Nit*_*ddy 5 java android android-activity
这可能是一个基本问题,但我希望得到一些清晰.
我要做的是:1)使用requestCode启动一个活动,并在onActivityResult中处理两个操作,一个使用RESULT_OK,另一个使用RESULT_CANCELLED.我明确说明了每一个.
即使我只使用后退按钮关闭活动而没有设置任何结果,后端堆栈中的Activity也会收到RESULT_CANCELLED.
通过源代码我看到RESULT_CANCELLED是结果代码的默认值,结果代码总是被发回.
我正在读这个,这是不是一直发生的事情?或者我在申请中做错了什么?
资料来源:https://github.com/android/platform_frameworks_base/blob/master/core/java/android/app/Activity.java
当您的启动Activity重新启动时,在调用onResume()方法之前调用此Activity的onActivityResult(..)方法.检查Doc for Activity
默认的resultCode是RESULT_CANCELLED.
您必须在已启动的Activity中显式调用setResult(int)以更改resultCode的值.
这就是为什么在onActivityResult方法中检查resultCode == RESULT_OK很重要.因为即使您没有调用startActivityForResult,也可以调用onActivityResult.
这可能令人困惑,但这是默认行为.
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// Check which request we're responding to
if (requestCode == YOUR_REQUEST) {
// Make sure the request was successful
if (resultCode == RESULT_OK) {
// so some work
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2469 次 |
| 最近记录: |