可能是由以下几个原因引起的:
- 没有正确设置Activity的启动模式:在Android中,Activity有不同的启动模式,如standard、singleTop、singleTask和singleInstance。如果启动模式设置不正确,可能会导致onActivityResult方法不被调用。建议检查启动该Activity的Intent是否设置了正确的标志位。
- 没有正确设置requestCode:在启动Activity时,需要传递一个requestCode参数,用于标识该请求的唯一性。在调用startActivityForResult方法时,requestCode应该是一个非零的整数值。在onActivityResult方法中,可以通过判断requestCode来确定是哪个请求返回的结果。
- 没有正确设置setResult方法:在被启动的Activity中,如果需要返回结果给调用者,需要在Activity结束前调用setResult方法来设置结果码resultCode和数据Intent。如果没有正确设置setResult方法,可能会导致resultCode始终为零。
- Activity被销毁或重建:如果启动的Activity在后台被系统销毁或由于配置变化(如屏幕旋转)而重新创建,可能会导致onActivityResult方法不被调用。在这种情况下,可以考虑使用ViewModel或保存InstanceState来保存数据,并在Activity重新创建后恢复数据。
综上所述,如果方法onActivityResult不会被调用,并且在调用resultCode时始终为零,可以检查Activity的启动模式、requestCode的设置、setResult方法的调用以及Activity的销毁和重建情况。如果问题仍然存在,可能需要进一步调试和排查代码逻辑。