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.process.media"已停止運行是怎麼回事
有兩種情況可能會造成出現 抱歉,進程"android.process.media"已停止運行。第一種是因為刪除或停用了「音樂」這個程序造成的。第二種android.process.media」已停止運行的現象,這個進程是訪問媒體存儲的,造成這個現象多半是突然斷電或者死機重啟造成數據丟失造成的。
電視盒是一種外置的電視接收盒,外形如一個數據機大小,是一個相對獨立的設備。電視盒的優點是可以不佔用IRQ(中端)、不開主機、PLUG&PLAY(即插即用)、無需安裝驅動程序。
許多電視盒增加了採集節目的功能,電視節目的效果跟它的晶元以及高頻頭有直接的關系,價格適中。電視盒的功能還包括錄像、時光平移、視頻採集與壓縮以及收聽廣播等。用戶可以通過電腦對電視卡採集的視頻進行後期編輯處理,並可以刻錄成光碟以便保存。
❸ com.android.phone已停止運行怎麼辦
手機com.android.phone已停止的兩種解決方法:
com.android.phone已停止的解決方法一:清空軟體緩存
1:清楚撥號歷史數據,首先進入設置——程序管理——全部——撥號——清除數據/緩存試試,還可以清理下手機的緩存。
2: 進行以下兩個操作,音量鍵選擇,電源鍵確認 wipe data/factory reset和wipe cache partition
3:選擇reboot system now重啟手機,看看是否還有com.android.phone已停止。
om.android.phone已停止的錯誤分析:
Android運行系統程序出錯時都會報XXX進程意外停止,從表面上除了知道是哪個進程出錯外其他一無所知,但是經分析一般是由於多種原因導致的,如緩存過多,或者刷機之前沒有進行雙清等等。
❹ 8848手機出現進程android停止運行怎麼辦
1、關機,把sim卡拿出來。
2、不裝sim卡重啟機器。
3、重啟之後,進入設置,更多,移動網路,網路運營商。選擇後等待約30秒後,出現網路運營商,然後點自動選擇。
4、關機,插入sim卡,重啟,問題解決。
5、以上為8848手機出現進程android停止運行的解決步驟。