H5网站模板修改教程,贵阳网站制作建设,如何做一款app,找外包做网站以前对于Activity的启动模式只限于文字说明理解的层面#xff0c;但最近的一个问题让我对启动模式有了更深的了解。
Activity有四大启动模式:standard,singleTop,singleTask,singleInstance#xff0c;这些启动模式的特点就不在这里细说#xff0c;主要说一下SingleInstanc…以前对于Activity的启动模式只限于文字说明理解的层面但最近的一个问题让我对启动模式有了更深的了解。
Activity有四大启动模式:standard,singleTop,singleTask,singleInstance这些启动模式的特点就不在这里细说主要说一下SingleInstance这种启动模式的Activity启动其它模式的Activity的效果与可能出现的问题
问题是这么描述的A栈最顶层的一个Activity启动了一个启动模式为SingleInstance的Activity-B那么如果B启动一个启动模式为standard的Activity-C那么C会出现在哪个栈是A上面还是B还是建一个新栈C 今天我就被这种情况给困住了因为我无意中造成了这种情况B一旦启动C则A也会被带出来我在执行回退操作的时候的顺序是C-A不见了B栈中的Activity对象我刚开始以为是B或者C无意中启动了A最顶层的对象并消失但是后来发现我在退出程序的时候发现B栈中的对象B中会报错我猜B对象可能在程序退出的时候还存活只是它没有存在于正常的回退栈中。如下图所示 对于B消失的这种情况建议将启动模式改为SingleTaskB启动C之后C位于B栈内回退也是正常流程如果B设置为了SingleInstance则会出现意料之外的问题很难找到病症。