android中singleTask的home鍵的問題 – Android移動開發技術文章_手機開發 Android移動開發教學課程

 

開發的時候,由於用到瞭singleTask用法不當,造成瞭一些不必要的麻煩,現總結如下:

 

現有Activity:A,B,C,D;啟動順序是A->B->C->D,其中,B是singleTask的。

 

A到B後,A finish掉;B到C後,B不finish;C到D後,C不finish;在D啟動B,就可以一下子將C、D kill掉,隻保留B。但是,

 

這個時候你從B退出(整個程序退出瞭),長按Home鍵啟動,進來的第一個是B,而不是A,這就已經不對瞭;  而且, 剛才就算你不退出,從B再進到C,按Home,再長按Home進入,回來的是B而不是C。

 

 

 

解決方案如下:

 

將singleTask改成singleTop。

 

這樣以來,剛才從D啟動B的時候,就要用intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

 

也就是說,singleTask會自動執行clear top, 而singleTop需要手動;而從Home鍵啟動,如果是singleTask的話就自動clear top瞭,所以到不瞭想要到的Activity。

 

這樣就解決瞭問題,但是上面的說法是個人的理解。

 

 

 

相關資料:https://www.aiwalls.com/kf/201112/113215.html

 

 

作者 青峰的博客

發佈留言