• 朝花夕拾-android 自定义application 管理activity的生命周期


    为了安全退出多个已创建的activity?

    可以自定义application:myapplication.

    增加一个list成员保存,一些关键的已创建的activity实例:

     1 private List<Activity> activityList = new LinkedList<Activity>();
     2 
     3 // 保存 所有activity的this
     4     public void addActivity(Activity activity) {
     5         activityList.add(activity);
     6     }
     7 
     8 public void exit() {
     9         // save cache data to db
    10         CacheManager cacheManager = CacheManager.getInstance(this);
    11         cacheManager.saveNewCache1ToDB();
    12         this.msgNewListMap.clear();
    13         for (Activity activity : activityList) {
    14             activity.finish();
    15         }
    16     }

    然后在activit创建的时候,oncreate中添加该activity到list中

    1 MyApplication.getInstance().addActivity(ChatListActivity.this);

    在程序退出时,例如双击返回键退出程序,调用application的exit方法:

     1 // 退出
     2     @Override
     3     public boolean onKeyDown(int keyCode, KeyEvent event) {
     4         // TODO Auto-generated method stub
     5         if (keyCode == KeyEvent.KEYCODE_BACK) {
     6             long currentTime = System.currentTimeMillis();
     7             if ((currentTime - touchTime) >= waitTime) {
     8                 showCustomToast(R.string.main_exit);
     9                 touchTime = currentTime;
    10             } else {
    11                 // android.os.Process.killProcess(android.os.Process.myPid());
    12                 MyApplication.getInstance().exit();
    13             }
    14             return true;
    15 
    16         }
    17         return super.onKeyDown(keyCode, event);
    18     }

    代码完整路径:http://git.oschina.net/zj2012zy/Android-Demo/tree/master/CustomApplication

  • 相关阅读:
    k3d安装k3s
    python自动目录环境
    http状态码
    linux下切换jdk版本
    pycharm py代码默认模板设置
    kubectl命令
    国内安装k3s
    minikube安装
    hmac-md5
    abstract class 与 interface
  • 原文地址:https://www.cnblogs.com/zj2012zy/p/4417292.html
Copyright © 2020-2023  润新知