Android开发 之 多个Activity时的完美退出方法

原文链接:http://zoulu1.blog.163.com/blog/static/467331492012127111641330/

感谢作者!

此方法借鉴与网上,因为做项目时遇到有多个acitivity需要退出的功能,试遍了网上的方法,最终发现这种方法有用,特分享给大家,其他的不成功的方法不一一介绍,不是说那些方法没用,而是在有多个Activity的特定环境下无效,在单个Activity中其他方法也能测试通过。

       该方法的原理

                     用一个list记录每次启动的acitivity,在退出时候循环退出改list中保存的acitivity,这样就做到了所有的acitivity完美退出。

第一步:新建一个AgentApp.java,代码如下

package com.zhaoba.service;   //代码所在包的位置的名字
import java.util.ArrayList;
import java.util.List;

import android.app.Activity;
import android.app.Application;

public class  AgentApp extends Application {
 private List<Activity> activities = new ArrayList<Activity>();
 private static AgentApp instance;
 private AgentApp(){
  
 }
 //单例模式中获取唯一的application
 public static AgentApp getInstance(){
  if(null==instance){
   instance=new AgentApp();
  }
  return instance;
 }
 //存放Activity到list中
 public  void addActivity(Activity activity) {
    activities.add(activity);
 }
 @Override
 //遍历存放在list中的Activity并退出
 public void onTerminate() { 
   super.onTerminate();
    for (Activity activity : activities) {
       activity.finish();
    }
   android.os.Process.killProcess(android.os.Process.myPid()) ;
 }
}
第二步:在你的每个Activity的onCreate()方法中加入以下代码

AgentApp.getInstance().addActivity(this);

目的是:通过调用addActivity()方法,将启动的Activity名字添加到列表list中!

第三步:在你需要退出的时候,比如检测到按键按下等地方加入以下退出代码即可!

AgentApp.getInstance().onTerminate();
通过以上三步,就可以实现在要关闭的地方,实现完美关闭!


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值