最近在做乙個類似與任務管理器的東西,裡面有個功能,可以通過這個管理器結束掉其他的程序。
在android
平 台下,結束程序的方法還是比較多的。首先指明,此處的「結束程序」,包含了結束自身程序和結束其他程序兩個方面。通過查閱sdk文件和網上的一些資料,自 己找到一些結束程序的方法。在這裡做一些歸納和總結,文章的部分資訊有可能來自網上已有的文章和帖子,由於過了比較長時間,所以若發現本文與其他文章雷 同,請諒解。
一、結束乙個活動activity
要主動的結束乙個活動activity,(先強調一下,是結束乙個活動,而不是程序)眾所周知,肯定是finish方法啦,這個就毋庸置疑了,而且這 個方法最後會呼叫activity的生命週期函式ondestroy方法,結束當前的activity,從任務棧中彈出當前的activity,啟用下一 個activity。當然其他的finish系列方法,我們不在這裡做詳細討論,有興趣的同學可以自己查閱一下sdk 的文件。
二、強制結束當前的程序
強行結束當前程序有兩個方法。(呵呵,這裡就是結束程序了)
1、killprocess(int pid)
例子:android.os.process.killprocess(android.os.process.mypid());
對於這個方法,需要詳細解釋一下。在sdk的文件中,解釋如下:
英語不好,不能準確翻譯,所以希望大家自己理解,免得對大家造成誤解。我個人對這句話的解釋就是,這個方法使用是有條件的:
a、將被殺掉的程序 和 當前程序 處於同乙個包或者應用程式中;
b、將被殺掉的程序 是由當前應用程式所建立的附加程序;
c、將被殺掉的程序 和 當前程序 共享了普通使用者的uid。(這裡的普通使用者,是相對於root許可權的使用者來說的)
2、system.exit(int code) 例子:system.exit(0);
該方法只能用於結束當前程序自身,個人覺得在程式遇到異常,無法正常執行時,可以通過這個方法強制退出。
需要注意的是,這兩個方法,會導致程序非正常退出,就是說,程序退出時不會去執行onpause、onstop和ondestroy方法,那麼程序很有可能錯過了儲存資料的機會。因此,這兩個方法最好使用在出現異常的時候!
三、結束另乙個程序
要通過乙個程序去結束另乙個程序。在之前的sdk版本中,一直使用方法restartpackage(packagename)方法,但是在android
的開發void killbackgroundprocesses(string packagename)
由於這個方法沒有返回值,所以我們也不知道我們的目標程序是否真的退出了。但是,我目前只發現了這個可以結束另乙個程序的方法。
四、退出到主螢幕(記得是對當前程序的處理)
這個方法,也是退出當前程序的乙個方法。如果我們在程序中建立了很多的activity,但是又不想關閉時去退出不在任務棧頂的activity,那麼就可以直接使用這個方法了。這個方法是通過查閱網上資料看到的。 】
功能:當按下返回鍵時,就返回到主螢幕,並帶有引數flag_activity_clear_top,會清理掉當前的活動。
@override
public boolean onkeydown(int keycode, keyevent event)
return super.onkeydown(keycode, event); }
Android下結束程序的方法
一 結束乙個活動activity 要主動的結束乙個活動activity,使用finish方法,而且這個方法最後會呼叫activity的生命週期函式ondestroy方法,結束當前的activity,從任務棧中彈出當前的activity,啟用下乙個activity。當然其他的finish系列方法,我們...
Android結束程序
1 自己結束自己 this.finish 2 killprocess int pid 例子 system.exit 0 該方法只能用於結束當前程序自身,個人覺得在程式遇到異常,無法正常執行時,可以通過這個方法強制退出。需要注意的是,這兩個方法,會導致程序非正常退出,就是說,程序退出時不會去執行onp...
結束普通方法無法結束的程序
ntsd c q p pid ntsd c q pn pname 兩種方法 一種是使用程序的id號,將pid換成對應程序id號即可 一種是使用程序的名稱,將pname換成對應的exe名字即可,比如notepad.exe 為了方便,寫了個批處理,將該批處理和ntsd放在一起,使用時執行批處理,選擇對應...