本文主要介绍“如何启动安卓活动”。日常操作中,相信很多人对于如何启动安卓Activity都有疑问。边肖查阅了各种资料,整理出简单易用的操作方法,希望能帮你解答“如何启动安卓活动”的疑惑!接下来,请和边肖一起学习!
这个函数的目的是找出ID等于参数taskId的任务,然后找出这个任务中是否有要启动的Activity的实例。
如果存在,则调用finishActivityLocked函数将终止此Activity实例上方直至任务堆栈顶部的活动。
在这个例子中,有必要检查任务中是否有SubActivity类型的实例,affinity的属性值等于‘shy . lo . task’,如果有,结束它上面的所有活动。
这里,affinity属性值等于‘shy . lo . task’的任务只有一个MainActivity,它不是SubActivity的实例,所以这个函数返回null。
回到前面的startActivityUncheckedLocked函数,这里的变量top为空,所以执行下面的else语句:
[Java]viewplancopyif(top!=null){ 0.} else {//aspecialcase : weneedto//start the activitybecauseis not current//running,并且ecaller hasaskedtoclarth//current attaskthovethistactivityattop . addingtotask=true;//now pretendenlikethistactivitybeingstarted//bythetopofitstask,soitistputin//right place . source record=TaskTop;}然后,变量addingToTask的值为真,同时变量sourceRecord的值设置为taskTop,也就是上一次调用findTaskLocked函数的返回值。这里,它是主要活动。
往下看,下面的if语句:
[Java]viewplancopyif(r . package name!=null){//IftheaactivityBeinglaunheadithesameasonecurrent//atthetop,然后weneedtocheckfit应该只被启动//一次。ActivityRecordtop=toprunning nodelaydactivitylocked(notTop);if(top!=null r . resultto==null){ if(top . real activity . equals(r . real activity)){ if(top . app!=nulltop.app.thread!=null){ 0......................理论和实践的结合可以帮助你学得更好。去试试吧!如果你想继续学习更多的相关知识,请继续关注网站,边肖会继续努力,给大家带来更多实用的文章!
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/151648.html