android關閉進程
㈠ android 怎麼把進程結束掉
1、自己結束自己 this.finish();
2、killProcess(int pid)
例子:android.os.Process.killProcess(android.os.Process.myPid());
對於這個方法,需要詳細解釋一下。在SDK的文檔中,解釋如下:
Kill the process with the given PID. Note that, though this API allows us to request to kill any process based on its PID, the kernel will still impose standard restrictions on which PIDs you are actually able to kill. Typically this means only the process running the caller's packages/application and any additional processes created by that app; packages sharing a common UID will also be able to kill each other's processes.
英語不好,不能准確翻譯,所以希望大家自己理解,免得對大家造成誤解。我個人對這句話的解釋就是,這個方法使用是有條件的:
a、將被殺掉的進程 和 當前進程 處於同一個包或者應用程序中;
b、將被殺掉的進程 是由當前應用程序所創建的附加進程;
c、將被殺掉的進程 和 當前進程 共享了普通用戶的UID。(這里的普通用戶,是相對於Root許可權的用戶來說的)
3、System.exit(int code)
例子:System.exit(0);
該方法只能用於結束當前進程自身,個人覺得在程序遇到異常,無法正常執行時,可以通過這個方法強制退出。
需要注意的是,這兩個方法,會導致進程非正常退出,就是說,進程退出時不會去執行onPause、onStop和onDestroy方法,那麼進程很有可能錯過了保存數據的機會。因此,這兩個方法最好使用在出現異常的時候!
4、killBackgroundProcesses(String packageName)
要通過一個進程去結束另一個進程。在之前的SDK版本中,一直使用方法restartPackage(packageName)方法,但是在Android的開發文檔中介紹說,這個函數會導致一些問題( the previous behavior here is no longer available to applications because it allows them to break other applications by removing their alarms, stopping their services, etc.),所以建議大家使用一個新的方法:
由於這個方法沒有返回值,所以我們也不知道我們的目標進程是否真的退出了。但是,我目前只發現了這個可以結束另一個進程的方法。此方法需要許可權:
<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES" />
5、利用反射調用forceStopPackage來結束進程
java代碼
Method forceStopPackage = am.getClass().getDeclaredMethod("forceStopPackage", String.class);
forceStopPackage.setAccessible(true);
forceStopPackage.invoke(am, yourpkgname);
注意:
需要在manifest里加上shareid定義:android:sharedUserId="android.uid.system"
需要在manifest里加上許可權:<uses-permission android:name="android.permission.FORCE_STOP_PACKAGES"></uses-permission>
需要採用系統platform簽名,因為需要用FORCE_STOP_PACKAGES許可權,該許可權只賦予系統簽名級程序,然後經編譯環境重新編譯,即可實現強制停止指定程序(本人親自驗證可行)
6、killall -HUP packageName || kill -9 pid
Java代碼
String cmd="killall -HUP com.android.test";
try {
Process process = Runtime.getRuntime().exec(cmd);
BufferedReader in = new BufferedReader(new InputStreamReader(
process.getInputStream()));
String line = null;
while ((line = in.readLine()) != null) {
System.out.println("exec shell: == " + line);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
此方法理論上可行,但是應該需要系統級或底層的協助
㈡ android開發怎麼用代碼結束進程
用一個公共boolean值做標記,需要結束的時候更改一下標記,如果線程處於阻塞,就調用interrupt()實現即時結束,如:
//定義一個公共boolean標記
booleanstop=false;
//線程的run方法
publicvoidrun(){
while(!stop){
try{
System.out.println("running");
Thread.sleep(5000);
}catch(InterruptedExceptione){
e.printStackTrace();
System.out.println("stop");
}
}
}
//如果要結束,在要結束線程的地方把stop的值改為true,
stop=true;
//因為是線程在阻塞,所以還要調用interrupt()拋出異常結束阻塞
myThread.interrupt();
㈢ lg手機 android設置向導 關閉
在設置里關閉即可。
具體是在設置,然後點擊應用程序,在右上角,顯示系統進程,最後關閉即可。
手機向導是對使用本手機的人進行基礎使用教程。讓你對各個圖標功能有個了解,能初步使用。
㈣ 安卓手機關閉後台應用方法 如何徹底退出後台應用
若使用的是vivo手機,可以從屏幕底部中間往上滑後停頓調出後台應用(部分機型需點擊左鍵),按住軟體圖標上滑,即可關閉後台運行的應用。
㈤ android 怎麼調用強制關閉
Android手機調用強制關閉的方法(以小米2手機為例,其他手機操作方法類似):
1、打開手機的設置界面;