博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
随时随地退出程序
阅读量:5037 次
发布时间:2019-06-12

本文共 1918 字,大约阅读时间需要 6 分钟。

新建一个ActivityCollector类作为活动管理器,代码如下

package com.qihui.myapplication10;import android.app.Activity;import java.util.ArrayList;import java.util.List;/** * Created by qihui on 2018/8/27. */public class ActivityCollector {    public static List
activities=new ArrayList<>(); public static void addActivity(Activity activity){activities.add(activity);} public static void removeActivity(Activity activity){ activities.remove(activity); } public static void finishAll(){ for (Activity activity:activities) { if(!activity.isFinishing()){ activity.finish(); } } activities.clear(); }}

  在管理器中,我们通过一个List来暂存活动,然后提供了一个addActivity()方法用于向List中添加活动,提供了一个removeActivity()方法用于从List中移除活动,最后提供一个finishAll()方法用于将List中存储的活动全部销毁掉。

下面是BackActivity中的代码

package com.qihui.myapplication10;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.util.Log;/** * Created by qihui on 2018/8/27. */public class BaseActivity extends AppCompatActivity {    @Override    protected void onCreate(Bundle savedInstanceState){        super.onCreate(savedInstanceState);        Log.d("BaseActivity","dangqianactivity"+getClass().getSimpleName());        ActivityCollector.addActivity(this);         }    @Override    protected void onDestroy(){        super.onDestroy();        ActivityCollector.removeActivity(this);    }}

  在BaseActivity的onCreate()方法中调用ActivityCollector的addActivity()方法,表明将当前正在创建的活动添加到活动管理器中。然后,在BaseActivity中重写onDestroy()方法,并调用ActivityCollector的removeActivity()方法,表明将一个马上要销毁的活动从活动管理器里移除。

从此以后,不管你在什么地方退出程序,只需要调用ActivityCollector.finishAll();方法就可以了。

可以加上杀掉当前进程的代码,保证程序完全退出,代码如下

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

其中,killProcess()方法用于杀掉一个进程,它接收一个进程id参数,我们可以通过myPid()方法来获取当前程序的进程id,注意,killProcess()方法只能用于杀掉当前程序的进程,我们不能使用此方法杀掉其他程序。

 

转载于:https://www.cnblogs.com/huichao1314/p/9543891.html

你可能感兴趣的文章
数据分析 -- 白话一下什么是决策树模型(转载)
查看>>
Java SPI机制原理和使用场景
查看>>
web前端java script学习2017.7.18
查看>>
删除TXPlatform
查看>>
LaTex:图片排版
查看>>
并发访问超时的问题可能性(引用)
查看>>
中小团队基于Docker的Devops实践
查看>>
利用python打开摄像头并保存
查看>>
System函数的使用说明
查看>>
Selenium-测试对象操作之:获取浏览器滚动条滚动距离
查看>>
Linux下MySQL数据库安装与配置
查看>>
Extjs String转Json
查看>>
oracle入门(4)——少而常用的命令
查看>>
打印机设置(PrintDialog)、页面设置(PageSetupDialog) 及 RDLC报表如何选择指定打印机...
查看>>
Java 虚拟机部分面试题
查看>>
二叉树的遍历问题总结
查看>>
Spring之面向切面编程AOP
查看>>
MATLAB GUI程序设计中使文本框接收多行输入的方法
查看>>
全文检索-Elasticsearch (四) elasticsearch.net 客户端
查看>>
Oracle DBMS_SESSION
查看>>