《黑马程序员安卓教程:Android之杀死进程》由会员分享,可在线阅读,更多相关《黑马程序员安卓教程:Android之杀死进程(6页珍藏版)》请在金锄头文库上搜索。
1、Android 之杀死进程打开一个 Android 应用,在我们点击“BACK”按键时,当前页面的 Activity 便退出任务栈,但此时该应用所对应的进程仍然在内存中。若打开的应用非常多,则内存中的进程也会随之增多,在现实项目中,我们有必要关闭系统的某些进程以节约资源。那么,如何关闭一个进程呢?具体如下1 关闭自我进程打开一个应用程序,在这个应用程序中实现自我进程的关闭功能。具体操作如下:新建一个工程,命名为:14_安全退出应用程序。在 Activity 中重写 onBackPressed 方法,代码如例 1-1 所示:例 1-1Overridepublic void onBackPress
2、ed() System.exit(0);super.onBackPressed();例 1-1 使用了 java se 的方法直接退出虚拟机,这种方法虽然可行但是有些暴力。图 1-1 是运行效果:点击 “ B A C K ” 按钮图 1-1 所示由图 1-1 可知:我们在点击“BACK”按钮时,杀死了当前应用的进程。下面我们来讲述另一种杀死当前应用进程的方法,代码如例 1-2:例 1-2Overridepublic void onBackPressed() android.os.Process.killProcess(android.os.Process.myPid();super.onBac
3、kPressed();在 Android 中有一个 Process 类,该类提供了常用的与进程相关的方法。本例 killProcess 方法中传入的参数是进程的 id。运行程序,效果也如图 1-1 所示。2 关闭其他进程在一个 Android 应用中实现关闭其他应用进程的方法,新建一个工程,命名为:15_杀死别的应用,布局如图 1-2 所示图 1-2 所示图 1-2 的 xml 布局代码如例 1-3 所示:例 1-3由 1-3 可知:在点击按钮时,程序执行 kill 方法,在这个方法里实现杀死 EditText 中指定应用的功能。点击事件代码如例 1-4 所示:例 1-4Overridepro
4、tected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);ed_packname = (EditText) findViewById(R.id.ed_packname);am =(ActivityManager) getSystemService(ACTIVITY_SERVICE);public void kill(View view) am.killBackgroundProcesses(ed_packname.getText().toString();运行程序(务必在清单文件中添加相关权限) ,效果如图 1-3 所示:在点击按钮时,音乐进程杀死,此时 DDMS 进程列表对应进程被杀死,效果如图 1-4:图 1-4 所示提示:在运行程序时,我们需要添加相关权限