• 【工具类】Android退出多个Activity


    // 不能把应用程序完全杀死,并且也不会把当前的Activity栈清空。

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

     

    // 不会把自己的应用程序杀死。

    System.exit(0);

     

    // 可以杀死别的程序的进程,但是无法杀死自己的进程。

    ActivityManager manager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);   

    manager.restartPackage(getPackageName());

    <uses-permission android:name="android.permission.RESTART_PACKAGES" />

    【正确的使用方法】

    创建出来整个应用程序的 全局的实例。

    在整个应用程序的进程第一次被创建的时候 执行。

     1 import java.util.LinkedList;
     2 import java.util.List;
     3 import android.app.Activity;
     4 import android.app.Application;
     5 
     6 /** 8  * Title: ExitApplication.java</br> 
     9  * Description:退出APP </br> 
    10  * Create Date:2012-10-11 </br> History: <br/>
    11  * -------Date-----------Modifer-------------------Remark------------- 
    12  * 2012-8-7   DuanRan     create     
    13  * @author: duanran<br/>
    14  */
    15 public class ExitApplication extends Application {
    16     
    17     private List<Activity> activityList = new LinkedList<Activity>();
    18     private static ExitApplication instance;
    19 
    20     private ExitApplication() {
    21         
    22     }
    23 
    24     // 单例模式获取唯一的exitapplication
    25     public static ExitApplication getInstance() {
    26         if (null == instance) {
    27             instance = new ExitApplication();
    28         }
    29         return instance;
    30     }
    31 
    32     // 添加activity到容器中
    33     public void addActivity(Activity activity) {
    34         if(!activityList.contains(activity))
    35              activityList.add(activity);
    36         
    37     }
    38 
    39     // 遍历所有的Activiy并finish
    40     public void exit() {
    41         for (Activity activity : activityList) {
    42             activity.finish();
    43         }
    44         System.exit(0);
    45     }
    46     
    47     public void remove(Activity ar){
    48         activityList.remove(ar);
    49     }
    50 }

    在配置文件中,application中加入 android:name="ExitApplication".

    在Activity中调用:

    // 初始化的时候使用,把当前Activity添加进去
    ExitApplication.getInstance().addActivity(this);
    
    // 退出程序的时候,把所有Activity删除掉
    ExitApplication.getInstance().remove(this);
  • 相关阅读:
    利用guava来实现本地的cache缓存
    加减乘除工具类BigDecimalUtil
    linux使用apache发布静态html网页
    为什么从pycharm中打开的html文件会显示404?
    unittest测试框架生成可视化测试报告-BeautifulReport
    python虚拟环境迁移
    linux查看系统版本
    Webhook到底是个啥?
    钩子函数和回调函数的区别
    LookupError: "gw_lt" is not among the defined enum values
  • 原文地址:https://www.cnblogs.com/androidsj/p/2972994.html
Copyright © 2020-2023  润新知