活動介面重複返回

2022-05-08 23:21:09 字數 1344 閱讀 9887

將最近在開發中遇到的問題記錄下來,以免重複再犯!

問題:在碎片介面點選按鈕「d」進入另一活動e(activity)後,再按回退鍵返回到碎片介面,按了回退鍵發現又重複進入活動e(activity),即需要兩次才能回退到碎片介面。

截圖如下:

原因:點選按鈕「d」後,活動「e」被重複建立了兩個例項。

解決方法:

1、原理:在給出具體解決方法之前,先預習下「活動啟動模式」這個知識點,在實際專案中我們應該根據具體的需求來為每個活動指定恰當的啟動模式。啟動模式一共有4種,分別是standard、singletop、singletask和singleinstance,可以在androidmanifest.xml中通過標籤指定android:launchmode屬性來選擇啟動模式。

·standard模式(即預設情況下),每當啟動乙個新的活動,它就會在返回棧中入棧,並處於棧頂的位置。對於使用standard模式的活動,系統不會在乎這個活動是否已經在返回棧中存在,每次啟動都會建立該活動的乙個新的例項。

缺點:活動已經在棧頂,再次啟動的時候還要建立乙個新的活動例項

· singletop模式用來解決重複建立棧頂活動問題。在啟動活動時如果發現返回棧的棧頂已經是該活動,則認為直接使用它,不會再重新建立新的活動例項。

缺點:如果該活動並沒有處於棧頂位置,還是可能會建立多個活動例項

· singletask模式讓某個活動在整個應用程式的上下文中只存在乙個例項。當活動指定為singletask,每次啟動該活動時系統首先會在返回棧中檢查是否存在該活動的例項,如果發現已經存在則直接使用該例項,並把在這個活動之上的所有活動統統出棧,如果沒有發現就會建立乙個新的活動例項。

· singleinstance模式啟用乙個新的返回棧來管理這個活動

2、具體方法:在androidmanifest.xml中「e」活動下新增android:launchmode="singletask"即可,具體如下:

<

activity

android:name

=".activity.eactivity"

android:launchmode

="singletask"

/>

koa 介面返回資料 koa 介面非同步返回資料問題

用koajs實現了乙個介面,介面裡面讀取了乙個文字檔案,但是返回資料的時候不能等待檔案處理完成後返回資料,而是在最外層才能返回資料。求解。已解決,附上 use strict const readline require readline const fs require fs const path ...

webservice呼叫介面,介面返回陣列型別

1.其中sendsyncmsg1介面是方法名,vector實現了list介面,xml是sendsyncmsg1的方法形參 service service new service call call call service.createcall call.settargetendpointaddre...

android返回HOME介面

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!android 中如何返回home介面,相當於按下home key intent mhomeintent new intent intent.action main mhomeintent.addcategory intent.category h...