android singTask 不走oncreat 走onNe

作者: 蔡振辉 | 来源:发表于2019-04-01 14:58 被阅读17次

    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对象。

    相关文章

      网友评论

        本文标题:android singTask 不走oncreat 走onNe

        本文链接:https://www.haomeiwen.com/subject/qnsvbqtx.html