startActivity的requires new task異常解析

    很多人使用startActivity時候,會碰到如下的異常:

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?


    我曾經也遇到過,不過後來研究了一下之後,明白了原理,記下來,以爲碰到同樣困擾的兄弟們解惑。


    都知道,Context中有一個startActivity方法,Activity繼承自Context,重載了startActivity方法。如果使用Activity的startActivity方法,不會有任何限制,而如果使用Context的startActivity方法的話,就需要開啓一個新的task,遇到上面那個異常的,都是因爲使用了Context的startActivity方法。解決辦法是,加一個flag。

intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

 

     這樣就可以再新的task裏面啓動這個Activity了。

發佈了18 篇原創文章 · 獲贊 1 · 訪問量 3469
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章