Android - singleTask 導致 startActivity無效

Android - singleTask 導致 startActivity無效

雖然對 加載模式(LaunchMode)不熟,但遇到一次bug,稍微有懂一些概念,

因為這次改版,增加了singleTask,

但因為在class呼叫同樣自己的class,結果導致startActivity完全沒效果,這發生在4.x版才會出現的問題,5.x並不會。

再想startActivity這老梗的程式,怎麼可能會出錯,

後來想是不是AndroidManifest.xml該Activity設定了

android:launchMode="singleTask"

的關係。

拿掉,真的馬上就好了。

後來查網路文章,雖然不是一樣的問題,但也類似失效的狀況與原因

(Android Activity的加载模式和onActivityResult方法之间的冲突)

(解决 singleTask onActivityResult() 无效的问题)

但為什麼呢。

原來singleTask,自己呼叫自己,可能用同樣自己的Activity,但不會再跑一次onCreate、onStart的階段,而直接使用onNewIntent接收。

為了是用同樣的Activity,自己重刷自己,從onNewIntent開始。

這真是singleTask+自己呼叫自己所會產生的特殊bug(如果觀念不熟的話)