在android中使用:[activityname].this.finish();  只是退出了activity的堆栈中,要真正的退出程序在手机cpu中的运行,当应用不再使用时,通常需要关闭应用,可以使用以下三种方法关闭android应用:

一   使用killProcess()函数,首先获取当前进程的id,然后杀死该进程:

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

通过这种方式不能将应用程序完全杀死,并且他不会把当前应用应用的Activity的task任务栈清空

二   在activity的生命周期函数中添加如下的函数,强制关闭与该包有关联的一切执行:

ActivityManager am = (ActivityManager)getSystemService(Context.ACTIVITY_SERVICE); am.restartPackage("packagename");

还需要在AndroidManifest.xml文件中加入如下的权限:<uses-permission android:name="android.permission.RESTART_PACKAGES" />
   
      此做法:只能杀死别人,不能杀死自己

三、 终止当前正在运行的Java虚拟机,导致程序终止
System.exit(0);
不会把自己的应用程序杀死

企业中做法:
创建类app 继承Application

AndroidMainfest -->name -->app //声明该类为整个应用程序全局的实例

创建整个应用程序全局的实例
App.class:
ArrayList<Activity> activities;

其他的Activity中:

 public void onCreate(Bundle savedInstanceState) {
App app = (App) getApplication();//获取应用程序全局的实例引用
app.activities.add(this); //把当前Activity放入集合中
} public void onDestory(){
App app = (App) getApplication();//获取应用程序全局的实例引用
app.activities.remove(this); //把当前Activity从集合中移除
}

安全退出:
在菜单退出按钮的事件中定义如下代码:

 App app = (App) getApplication();
List<Activity> activities = app.activities;
for(Activity act:activities){
act.finish();//显式结束
}

android退出activity的方式总结(一)的更多相关文章

  1. Android 退出Activity

    在一个Process或一个处理线程中退出Activity可以用context来退出,如下: ((Activity)context).finish(); Android程序有很多Activity,比如说 ...

  2. Android 启动Activity的方式

    Activity的启动分为两种方式,显示方式和隐式方式,显示方式就是在通过intent启动Activity时指定了Activity的包名和类名. 而隐式方式则在初始化Intent时仅仅指定action ...

  3. android退出Activity

    对于单一Activity的应用来说,直接finish() 或者killProcess()和System.exit() 退出. 但是对于多Activity个可以使用单例模式创建一个Activity管理对 ...

  4. Android 退出多Activity的application的方式

    在开发过程中,我们常常需要一个退出功能,来退出该应用的所有Activity.下面,我们列举一些退出应用的几种方式.以下用的源码点击查看源码地址 欢迎star,欢迎fork 利用ActivityCont ...

  5. 从注册流程 分析如何安全退出多个Activity 多种方式(附DEMO)

      退出Activity注册Android遍历   目录(?)[+] 前言 知识结构 具体方案 方案1 方法采用FLAG_ACTIVITY_CLEAR_TOP退出整个程序多activity 方案2 方 ...

  6. Android启动Activity的两种方式与四种启动模式

    1.在一个Activity中调用startActivity()方法 2.在一个Activity中调用startActivityRequest()方法. 重写onActivityResult方法,用来接 ...

  7. Android退出应用最优雅的方式(改进版)

    Android退出应用最优雅的方式(改进版)(转) 我们先来看看几种常见的退出方法(不优雅的方式) 一.容器式 建立一个全局容器,把所有的Activity存储起来,退出时循环遍历finish所有Act ...

  8. Android -- 启动另外一个Activity的方式(2s自动启动)

    1.  使用Handler  并且可以设置进入和退出的动画效果 Class < ? > activityClass; Class [ ] paramTypes = { Integer.TY ...

  9. Android退出时关闭所有Activity的方法

    Android退出时,有的Activity可能没有被关闭.为了在Android退出时关闭所有的Activity,设计了以下的类: //关闭Activity的类 public class CloseAc ...

随机推荐

  1. JavaScript js生成GUID

    function generateUUID(){ var d = new Date().getTime(); var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxx ...

  2. ubuntu连接无线网

    我的ubuntu是因为没有安装无线网卡驱动,首先查看网卡型号 但是我在Broadcom官网上没有找到BCM43142的驱动. 通过谷歌后发现通过安装bcwl-kernel-source来解决这个问题, ...

  3. poj3094---对字符串的处理

    #include <stdio.h> #include <stdlib.h> #include<string.h> int main() { ]; int len, ...

  4. wx.button

    wx.Button A button is a control that contains a text string, and is one of the most common elements ...

  5. 整理的一些数据库不容易想到的SQL语句实例一

    1.行转列SQL语句 SELECT * FROM ( SELECT [FID] , [Weeks] , [Qty] FROM dbo.TempTable where Weeks is not null ...

  6. Nutch2.3分布执行过程中Mongodb中数据的变化

    inject $ nutch inject /opt/nutch/runtime/local/urls/ > db.stats() { "db" : "nutch& ...

  7. @Resource注解(转)

    @Resource 注解被用来激活一个命名资源(namedresource)的依赖注入,在JavaEE应用程序中,该注解被典型地转换为绑定于JNDI context中的一个对象.Spring确实支持使 ...

  8. QF——OC数组

    OC中的数组: OC中的数组和它的字符串有很多相似之处.也分为可变和不可变. NSArray:不可变数组,一经初始化,便不能再更改: NSMutableArray:可变数组,它其实是继承于NSArra ...

  9. 【转】Pjax是什么以及为什么推荐大家用

    http://my.oschina.net/sub/blog/12344 技术增强的文章,可以看一下 .

  10. jQuery中的类型判断

    在JQuery中有一个type方法,在1.11.2中是这样写的 var class2type = {}; var toString = class2type.toString; jQuery.each ...