Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android下強制關閉其他程序

Android下強制關閉其他程序

編輯:關於Android編程

這幾天一直在做一個Andorid應用,想實現任務管理器的效果,能夠徹底關閉其他的程序,網上也看了很多資料,很多都是使用後restartPackage或者killBackgroundProcesses函數去進行,但是這一種並不能真正的將應用關閉.我的手機是root過的defy,嘗試著使用其他的方法操作.

① kill -9 pid

這個命令對於使用linux的都非常的熟悉,強制殺掉一個進程.獲取要殺掉進程的pid,然後直接執行上述命令,但是測試後發現後,在手機中setting-app中,該應用依舊是運行狀態,force close依舊可以點擊,並沒有達到效果.


②使用android自帶命令(am force-stop)

這個是查看adb幫助的時候發現的,原來adb的操作是相當的豐富的,不僅可以啟動應用,發送廣播,查看日志,還能對應用進行操作,比如強制關閉,十分的強大.根據這個,成功實現關閉其他應用的操作. (adb介紹官方文檔)

package cn.androiddevelop.flushapk.util;

import java.io.IOException;
import java.io.OutputStream;

/**
 * 執行android命令
 * 
 * @author Yuedong Li
 * 
 */
public class SuUtil {

	private static Process process;

	/**
	 * 結束進程,執行操作調用即可
	 */
	public static void kill(String packageName) {
		initProcess();
		killProcess(packageName);
		close();
	}

	/**
	 * 初始化進程
	 */
	private static void initProcess() {
		if (process == null)
			try {
				process = Runtime.getRuntime().exec("su");
			} catch (IOException e) {
				e.printStackTrace();
			}
	}

	/**
	 * 結束進程
	 */
	private static void killProcess(String packageName) {
		OutputStream out = process.getOutputStream();
		String cmd = "am force-stop " + packageName + " \n";
		try {
			out.write(cmd.getBytes());
			out.flush();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	/**
	 * 關閉輸出流
	 */
	private static void close() {
		if (process != null)
			try {
				process.getOutputStream().close();
				process = null;
			} catch (IOException e) {
				e.printStackTrace();
			}
	}
}

轉載請注明出處.


  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved