|
很多人使用start Activity時(shí)候,會(huì)碰到如下的異常:
Caused by: android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?
我曾經(jīng)也遇到過(guò),不過(guò)后來(lái)研究了一下之后,明白了原理,記下來(lái),以為碰到同樣困擾的兄弟們解惑。
都知道,Context中有一個(gè)startActivity方法,Activity繼承自Context,重載了startActivity方法。如果使用Activity的startActivity方法,不會(huì)有任何限制,而如果使用Context的startActivity方法的話,就需要開(kāi)啟一個(gè)新的task,遇到上面那個(gè)異常的,都是因?yàn)槭褂昧薈ontext的startActivity方法。解決辦法是,加一個(gè)flag。 intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
這樣就可以在新的task里面啟動(dòng)這個(gè)Activity了。
希望以上的方法能夠幫助到大家,謝謝已閱者。更多安卓技術(shù)問(wèn)題歡迎加群探討:278744577,驗(yàn)證碼:eec,不寫(xiě)驗(yàn)證不予通過(guò)喲~+~
|
|