AMS重要的数据结构解析(一)

本文深入探讨了Android中启动新Activity时的任务管理机制,包括如何处理新任务、现有任务和任务堆栈的调整。详细解析了ActivityStackSupervisor和ActivityStack类的相关方法,如getNextTaskId、anyTaskForIdLocked和startActivityLocked,阐述了任务ID的生成、任务恢复以及Activity在任务堆栈中的插入逻辑。
摘要由CSDN通过智能技术生成

if (DEBUG_TASKS) Slog.v(TAG, "Starting new activity " + r + " in new task " +

r.task);

}

} else if (sourceRecord != null) {

… //这里过程类似,省略掉

} else if (inTask != null) {

} else {

// This not being started from an existing activity, and not part

// of a new task… just put it in the top task, though these days

// this case should never happen.

targetStack = adjustStackFocus(r, newTask);

targetStack.moveToFront(“addingToTopTask”);

ActivityRecord prev = targetStack.topActivity();

r.setTask(prev != null ? prev.task : targetStack.createTaskRecord(getNextTaskId(), //这里则是另一种情况,新启动的Activity与之前的Activity公用一个栈。

r.info, intent, null, null, true), null);

mWindowManager.moveTaskToTop(r.task.taskId);

if (DEBUG_TASKS) Slog.v(TAG, "Starting new activity " + r

    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值