android初学之退出应用程序
2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>
有很多界面的應(yīng)用下面的方法是行不通的:
?第一種方法:首先獲取當(dāng)前進(jìn)程的id,然后殺死該進(jìn)程。
?android.os.Process.killProcess(android.os.Process.myPid())
?通過這種方式不能將應(yīng)用程序完全殺死,并且他不會(huì)把當(dāng)前應(yīng)用應(yīng)用的Activity的task任務(wù)棧清空
?第二種方法:終止當(dāng)前正在運(yùn)行的Java虛擬機(jī),導(dǎo)致程序終止
?System.exit(0);
?不會(huì)把自己的應(yīng)用程序殺死
?第三種方法:強(qiáng)制關(guān)閉與該包有關(guān)聯(lián)的一切執(zhí)行
?ActivityManager manager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);???
?manager.restartPackage(getPackageName());
?<uses-permission android:name="android.permission.RESTART_PACKAGES" />
?只能殺死別人,不能殺死自己
?
其他方法:
1:打開系統(tǒng)主屏來(lái)模擬應(yīng)用退出的效果,這和用戶按Home鍵沒有什么區(qū)別。
?Intent intent = new Intent(Intent.ACTION_MAIN);
?intent.addCategory(Intent.CATEGORY_HOME);
?intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
?startActivity(intent);?
?
?當(dāng)應(yīng)用程序再次打開的時(shí)候,進(jìn)入的還是原來(lái)退出時(shí)顯示的界面:例如你在a.Activity界面調(diào)用了上面的方法,那么在程序再次進(jìn)入的時(shí)候還是在a.Activity
2,首先要說(shuō)明該方法運(yùn)行在Android 1.5 API Level為3以上才可以
?private void exit2() {
??ActivityManager actMgr = (ActivityManager) this .getSystemService(ACTIVITY_SERVICE);
??actMgr.restartPackage(getPackageName());
?}
?在清單文件中配置權(quán)限? android.Manifest.permission#RESTART_PACKAGES
?
?3. 根據(jù)Activity的聲明周期
?我們?cè)贏窗口打開B窗口時(shí)在Intent中直接加入標(biāo)志Intent.FLAG_ACTIVITY_CLEAR_TOP,這樣開啟B時(shí)將會(huì)清除該進(jìn)程空間的所有Activity。
?在A窗口中使用下面的代碼調(diào)用B窗口
?
?Intent intent = new Intent();
?intent.setClass(Android123.this, CWJ.class);
?intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);? //注意本行的FLAG設(shè)置
?startActivity(intent);
轉(zhuǎn)載于:https://my.oschina.net/u/1174979/blog/142920
與50位技術(shù)專家面對(duì)面20年技術(shù)見證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的android初学之退出应用程序的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Alaya Webdav Server
- 下一篇: 不可新增人员