[android] 08_进程的自杀和杀死别的进程

Android 4.0

进程的自杀和杀死别的进程

关闭应用,退出程序,杀死进程2014/6/8 星期日 17:01:42
当应用不再使用时,通常需要关闭应用,可以使用以下三种方法关闭android应用:
第一种方法首先获取当前进程的id,然后杀死该进程。
android.os.Process.killProcess(android.os.Process.myPid())
注意:第一种方式,只能杀死自己,别的进程杀死不了
第二种方法:终止当前正在运行的Java虚拟机,导致程序终止 。不推荐使用
System.exit(0);
第三种方法强制关闭与该包有关联的一切执行 ,只能杀死别人,不能杀死自己
ActivityManager activityManager = (ActivityManager) this.getSystemService(ACTIVITY_SERVICE);
activityManager.killBackgroundProcesses("cn.zengfansheng.progresskill");
需要权限: <uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES"/>
1、布局:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
   android:orientation="vertical" >
    <Button
        android:onClick="killself"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="杀死自己" />
    <Button
        android:onClick="killother"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="杀死别人" />
</LinearLayout>
2、代码:
package cn.zengfansheng.killproc;
import android.app.Activity;
import android.app.ActivityManager;
import android.os.Bundle;
import android.view.View;
public class MainActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
    /**
     * TODO 1、进程杀死自己,不能杀死别人
     * @param view
     */
    public void killself(View view) {
        android.os.Process.killProcess(android.os.Process.myPid());
        // System.exit(0);//不推荐使用
        System.out.println("杀死自己。。。");
    }
    
    /**
     * TODO 2、进程杀死别人,不能杀死自己的进程
     * @param view
     */
    public void killother(View view) {
        ActivityManager activityManager = (ActivityManager) this.getSystemService(ACTIVITY_SERVICE);
        activityManager.killBackgroundProcesses("cn.zengfansheng.progresskill");
        System.out.println("杀死别人。。。");
    }
}