自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Android進(jìn)程管理:開(kāi)發(fā)中終止進(jìn)程的方法

移動(dòng)開(kāi)發(fā) Android
Android系統(tǒng)對(duì)于進(jìn)程和內(nèi)存的管理有自己的策略。如果內(nèi)存足夠,Android不會(huì)隨意殺掉任何進(jìn)程;但如果內(nèi)存不足,進(jìn)程隨時(shí)可能會(huì)被殺掉。

在Android中,直接殺死應(yīng)用的進(jìn)程通常不是推薦的做法,但有時(shí)候出于某些特定的需求(如調(diào)試或管理應(yīng)用),可能需要?jiǎng)x死相應(yīng)進(jìn)程。

  1. 「使用android.os.Process.killProcess()方法」:使用android.os.Process.myPid()方法獲取當(dāng)前進(jìn)程的ID,然后使用android.os.Process.killProcess()方法殺死該進(jìn)程。由于Android的安全機(jī)制,只有具有相同UID的進(jìn)程才能互相殺死。所以該方法只能用于自殺,即殺死調(diào)用的那個(gè)進(jìn)程。
int pid = android.os.Process.myPid();
android.os.Process.killProcess(pid);
  1. 「使用System.exit()方法」:可以終止當(dāng)前正在運(yùn)行的Java虛擬機(jī),從而實(shí)現(xiàn)程序的終止。當(dāng)Java虛擬機(jī)被終止時(shí),所有正在運(yùn)行的線程都將被立即停止,包括非守護(hù)線程,活動(dòng)所占的資源也會(huì)被釋放。調(diào)用該方法只會(huì)終止當(dāng)前Java虛擬機(jī),不會(huì)直接影響其他Android進(jìn)程。
System.exit(0);

或者:

private static final int MSG_DELAY_EXIT_APP = 0;

private static Handler mHandler = new Handler() {
    public void handleMessage(android.os.Message msg) {
        switch (msg.what) {
            case MSG_DELAY_EXIT_APP:
                Runtime.getRuntime().exit(0);
                break;
        }
    }
};
mHandler.sendEmptyMessageDelayed(MSG_DELAY_EXIT_APP, 4000);
  1. 「使用ActivityManager.killBackgroundProcesses()方法」:可以強(qiáng)制關(guān)閉與指定包名有關(guān)聯(lián)的所有后臺(tái)進(jìn)程(不會(huì)殺死前臺(tái)進(jìn)程),而且只有當(dāng)系統(tǒng)資源緊張時(shí)才會(huì)有效,同時(shí)需要KILL_BACKGROUND_PROCESSES權(quán)限。這個(gè)方法只能用于他殺,即殺死其他應(yīng)用程序的進(jìn)程,而不能用于自殺。
String packageName = getPackageName(); // 獲取當(dāng)前應(yīng)用的包名
ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
am.killBackgroundProcesses(packageName);

Android系統(tǒng)對(duì)于進(jìn)程和內(nèi)存的管理有自己的策略。如果內(nèi)存足夠,Android不會(huì)隨意殺掉任何進(jìn)程;但如果內(nèi)存不足,進(jìn)程隨時(shí)可能會(huì)被殺掉。當(dāng)內(nèi)存充足時(shí),Android會(huì)嘗試恢復(fù)之前被殺掉的進(jìn)程。對(duì)于應(yīng)用程序的開(kāi)發(fā)者來(lái)說(shuō),應(yīng)該盡量避免依賴靜態(tài)變量來(lái)存儲(chǔ)重要數(shù)據(jù),而是應(yīng)該將數(shù)據(jù)保存到文件或其他持久化存儲(chǔ)中。同時(shí)也需要注意合理地管理應(yīng)用程序的內(nèi)存使用,避免因?yàn)閮?nèi)存泄漏等問(wèn)題導(dǎo)致進(jìn)程被系統(tǒng)殺掉。

責(zé)任編輯:武曉燕 來(lái)源: 沐雨花飛蝶
相關(guān)推薦

2010-06-13 15:17:16

Linux 查看進(jìn)程

2016-10-28 21:30:00

AndroidJava進(jìn)程

2010-06-04 14:31:59

Linux 查看進(jìn)程

2010-06-04 15:16:36

Linux 查看進(jìn)程

2020-10-10 11:02:09

Linux 系統(tǒng) 數(shù)據(jù)

2023-03-02 23:50:36

Linux進(jìn)程管理

2021-08-14 22:29:42

Backstab進(jìn)程安全工具

2020-11-18 09:06:04

Python

2010-02-25 10:28:43

Linux進(jìn)程管理

2010-06-28 14:52:30

cron進(jìn)程

2023-03-05 16:12:41

Linux進(jìn)程線程

2010-09-02 16:40:15

SQL刪除

2014-08-01 15:38:37

Linux進(jìn)程管理

2009-04-30 09:02:53

AcerAndroid開(kāi)發(fā)

2023-03-03 00:03:07

Linux進(jìn)程管理

2010-03-31 14:36:50

Oracle進(jìn)程結(jié)構(gòu)

2011-09-27 09:50:46

軟件項(xiàng)目管理

2011-01-11 13:47:27

Linux管理進(jìn)程

2010-02-06 10:26:55

Android進(jìn)程

2021-03-17 21:34:44

Linux內(nèi)存管理
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)