因为发现光调用finish()方法后 程序中所启动的线程依旧在后台运行 Android的特点之一 否则也不会出现诸多用于关闭进程的工具 我分别使用了2种可以用于完全关闭进程的方式

第一种方式

android.os.Process.killProcess(android.os.Process.myPid()); 

另一种

System.exit(0);

可以写在onDestory方法中

最近在公司的项目里看到了2个退出程序的方式 有的其实有些重复 可能是为了确保退出吧 如下:

Intent intenn = new Intent();        intenn.setAction("android.intent.action.MAIN");        intenn.addCategory("android.intent.category.HOME");        GameActivity.startActivity(intenn);        Process.killProcess(Process.myPid());

以及

        System.runFinalizersOnExit(true);        System.exit(0);
应该是上面那种更规范点 下面那种显得有些粗暴

又看到一篇该方面的文章 如下http://android.tgbus.com/Android/tutorial/201108/363511.shtml

写道 Android程序有很多Activity,比如说主窗口A,调用了子窗口B,在B中如何关闭整个Android应用程序呢? 这里给大家三种比较简单的方法实现。

  首先要说明在B中直接使用finish(),接下来手机显示的还是主窗口A,所以一起来看看是如何实现的吧。

  1. Dalvik VM的本地方法
  android.os.Process.killProcess(android.os.Process.myPid());
  获取PID,目前获取自己的也只有该API,否则从/proc中自己的枚举其他进程吧,不过要说明的是,结束其他进程不一定有权限,不然就乱套了。
System.exit(0);
  常规java、c#的标准退出法,返回值为0代表正常退出

  2. 任务管理器方法
  首先要说明该方法运行在Android 1.5 API Level为3以上才可以,同时需要权限android.permission.RESTART_PACKAGES,我们直接结束自己的package即可,直接使用ActivityManager类的restartPackage方法即可,参数为package name,该类通过getSystemService(Context.ACTIVITY_SERVICE)来实例化ActivityManager对象,这种方法系统提供的,但需要显示声明权限,所以使用中需要综合考虑。

  3. 根据Activity的声明周期
  我们知道Android的窗口类提供了历史栈,我们可以通过stack的原理来巧妙的实现,这里我们在A窗口打开B窗口时在Intent中直接加入标志Intent.FLAG_ACTIVITY_CLEAR_TOP,这样开启B时将会清除该进程空间的所有Activity。

  在A窗口中使用下面的代码调用B窗口
  Intent intent = new Intent();
  intent.setClass(Android123.this, CWJ.class);
  intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); //注意本行的FLAG设置
  startActivity(intent);
  接下来在B窗口中需要退出时直接使用finish方法即可全部退出。

更多相关文章

  1. android ViewPager动态加载问题
  2. android 窗口背景透明方法
  3. Android(安卓)View 事件分发机制流程
  4. 探究为何:在onCreate中通过View.post能获取宽高
  5. Android(安卓)wpa_cli 调试方法(adb shell 命令)
  6. Android应该掌握的高级技巧
  7. android存储本地数据大全
  8. 理解Android的异步消息处理机制
  9. abd找不到设备的解决方法

随机推荐

  1. android apk 签名信息 相关
  2. 关于Android方法数量限制的问题
  3. Android点击button触发Toast事件,弹出一个
  4. Android中如何取消或定制当点击GridView
  5. 简单的Android(安卓)红外线遥控
  6. Android HLS协议相关记录及部分解析
  7. Android利用Handler更新主线程UI
  8. Android(安卓)自定义带圆角的dialog
  9. Android TextView setMovementMethod 滑
  10. Android中的Logcat方法查看内核的日志