Activity退出的几种方式

在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();//显式结束
}
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值