亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

New Intent()使用Android啟動新實例:launchMode

New Intent()使用Android啟動新實例:launchMode

楊魅力 2019-12-21 13:01:00
我的活動A與android:launchMode="singleTop"在清單。如果我進入Activity B,C并且D那里有菜單快捷方式可以返回到我的應用程序根活動(A)。代碼如下:Intent myIntent = new Intent(getBaseContext(), MainActivity.class);startActivity(myIntent);但是,它沒有返回到A我現有的實例,MainActivity.class而是創建了一個新實例-> onCreate()而不是onNewIntent()。這不是預期的行為,對嗎?
查看完整描述

3 回答

?
慕絲7291255

TA貢獻1859條經驗 獲得超6個贊

這應該可以解決問題。


<activity ... android:launchMode="singleTop" />

創建啟動應用程序的意圖時:


Intent intent= new Intent(context, YourActivity.class);

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP);

這是需要的。


查看完整回答
反對 回復 2019-12-21
?
慕慕森

TA貢獻1856條經驗 獲得超17個贊

最終對我真正起作用的是:


Intent myIntent = new Intent(getBaseContext(), MainActivity.class);

myIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

startActivity(myIntent);


查看完整回答
反對 回復 2019-12-21
?
牧羊人nacy

TA貢獻1862條經驗 獲得超7個贊

從文檔引用:


“標準”和“ singleTop”模式在一個方面彼此不同:每次有新的“標準”活動意圖時,都會創建該類的新實例以響應該意圖。每個實例都處理一個意圖。類似地,還可以創建“ singleTop”活動的新實例來處理新意圖。但是,如果目標任務在其堆棧的頂部已經具有該活動的現有實例,則該實例將接收到新的意圖(在onNewIntent()調用中);沒有創建新實例。


我不確定100%表示“已經在其堆棧頂部具有該活動的現有實例”是什么意思,但是您的活動可能不滿足此條件。


請問singleTask或singleInstance為你的工作?或者也許您可以嘗試設置FLAG_ACTIVITY_SINGLE_TOP要創建的意圖,以查看是否有所不同,盡管我認為不會。


查看完整回答
反對 回復 2019-12-21
  • 3 回答
  • 0 關注
  • 713 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號