如果在一个 singleTop 或者 singleInstance 的 ActivityA 中通过 startActivityForResult()方法来启动另一个 ActivityB,那么系统将直接返回 Activity.Result_CANCELED 而不会再去等待返回,这是由于系统在 Framework 层做了对这两种启动模式的限制,因为 Android 开发者认为,不同 Task 之间默认是不能传递数据的,如果一定要传递,那则只能通过 Intent 来绑定数据 ----《 Android 群英传》