我有我的活動註冊爲意圖過濾器(明文),並收到多個意圖的問題。這是我的情況:如何捕捉新的意圖而不是舊的?
- 我打開電子郵件客戶端 - >標記一些文本 - >按「分享按鈕」,然後選擇我的活動這是正確列出(因爲它註冊爲這種行動的意圖過濾器)
- 我的活動打開,我可以清楚地看到它的EXTRA_TEXT中有正確的值(來自電子郵件的標記文本)
- 到目前爲止這麼好...但現在,如果我按HOME按鈕(它關閉我的活動,似乎打電話onStop ()) - >然後我再次打開電子郵件客戶端 - >標記一些不同的文本 - >按「分享按鈕」,然後突然我的活動打開(我期望可用活動的列表再次選擇)和收到的意向包含原文文字和n在EXTRA_TEXT中新標記的那個。
我在這裏錯過了什麼?如何通過意向接收新內容?我是否需要以某種方式使先前的Intent無效?
我不得不說,使用「BACK」而不是「HOME」按鈕可以正常工作,並且新的意圖包含按預期新標記的文本。這裏有什麼區別?
我得到我的意圖是這樣的:
intent = getIntent();
intentAction = intent.getAction();
if (intentAction.equals(Intent.ACTION_SEND) && intent.hasExtra(Intent.EXTRA_TEXT)) {
Bundle bundle = intent.getExtras();
感謝
不確定它是否會工作,但嘗試設置你的'Activity' launchMode爲「singleTop」,然後覆蓋並實現'protected void onNewIntent(Intent intent){...}'。 – Squonk
Squonk,這是正確的答案,但你需要把它作爲答案而不是評論,以便湯姆可以接受:) –
@AlexanderLucas:謝謝你的確認。我不是100%確定這是正確的,這就是爲什麼我只發表評論。 – Squonk