android开发全然退出activity
生活随笔
收集整理的這篇文章主要介紹了
android开发全然退出activity
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
我們退出Activity能夠調用:finish(),system(0),可是這些都僅僅是單單退出單個Activity
也有人會說,直接把進程殺死,這些做法都不是非常可取。事實上我們翻看api能夠發現。Activity
都是放入stack中管理,我們僅僅要把stack清空了,不就全然退出了嘛。
由于A是android:launchMode="singleTop"不會調用oncreate(),而是響應onNewIntent()
這時候推斷Intent.FLAG_ACTIVITY_CLEAR_TOP,然后把A finish()掉。
B,C也被清掉了,由于A中是android:launchMode="singleTop",棧以下的都被清理。
也有人會說,直接把進程殺死,這些做法都不是非常可取。事實上我們翻看api能夠發現。Activity
都是放入stack中管理,我們僅僅要把stack清空了,不就全然退出了嘛。
要對Activity的stack
管理,就須要了解launchMode的四種狀態。這里就不多說了。自己看看api。
我們就利用android:launchMode="singleTop",當該Activity在棧頂時。會清空它以下的Activity
然后把當前Activity finish掉,就全然關閉了。
實例 A,B。C,D四個Activity;A作為入口,在manifest.xml設置android:launchMode="singleTop"
其它幾個不須要設置。
啟動順序 A->B->C->D
這里我們在D窗體打開A窗體時在Intent中直接增加標志Intent.FLAG_ACTIVITY_CLEAR_TOP,
再次開啟A時將會清除該進程空間的全部Activity。
在D中使用以下的代碼:
Intent intent = new Intent();?
intent.setClass(D.this, A.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); //注意本行的FLAG設置
startActivity(intent)
finish();
A中代碼:
由于A是android:launchMode="singleTop"不會調用oncreate(),而是響應onNewIntent()
這時候推斷Intent.FLAG_ACTIVITY_CLEAR_TOP,然后把A finish()掉。
B,C也被清掉了,由于A中是android:launchMode="singleTop",棧以下的都被清理。
棧中A,B,C,D所有被清理。所以整個程序退出了。
總結
以上是生活随笔為你收集整理的android开发全然退出activity的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《LINUX3.0内核源代码分析》第二章
- 下一篇: Velocity模板引擎的简单使用