android singTask 不走oncreat 走onNewInstance

Activity的SingleTask启动模式:

以"singleTask"方式启动的Activity,全局只有唯一个实例存在,因此,当我们第一次启动这个Activity时,系统便会创建一个新的任务,并且初始化一个这样的Activity的实例,放在新任务的底部,如果下次再启动这个Activity时,系统发现已经存在这样的Activity实例,就会调用这个Activity实例的onNewIntent成员函数,从而把它激活起来。从这句话就可以推断出,以"singleTask"方式启动的Activity总是属于一个任务的根Activity。

在实际的使用过程中,需要注意SingleTask的启动模式,从字面与解释理解上面就已经说明,是从新开始一个任务站,那么该任务栈与一之前的Activity的任务栈就不会存在多大的关联,今天在书写代码的时候,遇到以下问题,分享以下。

在ActivityA中,startActivityForResult到ActivityB,其中ActivityB设置为SingleTask。

那么在实际出现的现象为:

ActivityA的onActivityResult将会首先被回调,然后再执行ActivityB的onCreate函数,也就说无论ActivityB返回什么内容,在ActivityA中都不会被接收到。

所以在使用SingleTask的方法不要随便使用。

另外onNewIntent()就是针对SingleTask使用的回调,当执行调用多个Activity对象的时候,会回调onNewIntent对象。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容