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(如果觀念不熟的話)