日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

由Actvity启动模式之SingleInstance引起的坑的反思

發(fā)布時(shí)間:2024/7/5 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 由Actvity启动模式之SingleInstance引起的坑的反思 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

以前對(duì)于Activity的啟動(dòng)模式只限于文字說明理解的層面,但最近的一個(gè)問題讓我對(duì)啟動(dòng)模式有了更深的了解。

Activity有四大啟動(dòng)模式:standard,singleTop,singleTask,singleInstance,這些啟動(dòng)模式的特點(diǎn)就不在這里細(xì)說,主要說一下SingleInstance這種啟動(dòng)模式的Activity啟動(dòng)其它模式的Activity的效果與可能出現(xiàn)的問題:

問題是這么描述的,A棧最頂層的一個(gè)Activity啟動(dòng)了一個(gè)啟動(dòng)模式為SingleInstance的Activity-B,那么如果B啟動(dòng)一個(gè)啟動(dòng)模式為standard的Activity-C,那么C會(huì)出現(xiàn)在哪個(gè)棧?是A上面還是B,還是建一個(gè)新棧C?


今天我就被這種情況給困住了,因?yàn)槲覠o意中造成了這種情況:B一旦啟動(dòng)C,則A也會(huì)被帶出來,我在執(zhí)行回退操作的時(shí)候的順序是C->A,不見了B棧中的Activity對(duì)象,我剛開始以為是B或者C無意中啟動(dòng)了A最頂層的對(duì)象并消失,但是后來發(fā)現(xiàn)我在退出程序的時(shí)候發(fā)現(xiàn)B棧中的對(duì)象B中會(huì)報(bào)錯(cuò),我猜B對(duì)象可能在程序退出的時(shí)候還存活,只是它沒有存在于正常的回退棧中。如下圖所示:


對(duì)于B消失的這種情況,建議將啟動(dòng)模式改為SingleTask,B啟動(dòng)C之后,C位于B棧內(nèi),回退也是正常流程,如果B設(shè)置為了SingleInstance,則會(huì)出現(xiàn)意料之外的問題,很難找到病癥。

總結(jié)

以上是生活随笔為你收集整理的由Actvity启动模式之SingleInstance引起的坑的反思的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。