随时随地退出程序

  新建一个结合类对所有活动进行管理。

 1 public class ActivityCollector{
 2     public static List<Activity> activities = new ArrayList<>();
 3     public static void addActivity(Activity activity){
 4         activities.add(activity);
 5     }
 6     public static void removeActivity(Acitivity activity){
 7         activities.remove(acitivity);
 8     }
 9     public static void finishAll(){
10         for(Activity activity: activities){
11             if(!activity.isFinishing()){
12                 activity.finish();
13             }
14         }
15     }
16 }

启动活动技巧

  在SecondActivity中添加一个actionStrat()

1 public class SecondActivity extends BaseActivity{
2     public static void actionStart(Context context,String data1,String data2){
3         Intent intent = new Intent(context,SecondActivity.class);
4         intent.putExtra("param1","data1");
5         intent.putExtra("param2","data2");
6         context.startActivity(intent);
7     }
8 ......
9 }

  启动SecondActivity

public void onClick(View v){SecondActivity.actionStart(FirstAcitivity.this,"data1","data2");
}

  杀死整个App

/** * 退出应用程序 */
public void AppExit(Context context) {  try {  ActivityCollector.finishAll();  ActivityManager activityMgr = (ActivityManager) context  .getSystemService(Context.ACTIVITY_SERVICE);  activityMgr.killBackgroundProcesses(context.getPackageName());  System.exit(0);  } catch (Exception ignored) {}
}  

  双击退出程序两个方法:

  1)定义一个变量,来标识是否退出

// 定义一个变量,来标识是否退出
private static boolean isExit = false;
Handler mHandler = new Handler() {@Overridepublic void handleMessage(Message msg) {super.handleMessage(msg);isExit = false;}
};public boolean onKeyDown(int keyCode, KeyEvent event) {if (keyCode == KeyEvent.KEYCODE_BACK) {if (!isExit) {isExit = true;Toast.makeText(getApplicationContext(), "再按一次退出程序",Toast.LENGTH_SHORT).show();// 利用handler延迟发送更改状态信息mHandler.sendEmptyMessageDelayed(0, 2000);} else {exit(this);}return false;}
return super.onKeyDown(keyCode, event);}

  2)保存点击时间:

/保存点击的时间
private long exitTime = 0;
public boolean onKeyDown(int keyCode, KeyEvent event) {if (keyCode == KeyEvent.KEYCODE_BACK) {if ((System.currentTimeMillis() - exitTime) > 2000) {Toast.makeText(getApplicationContext(), "再按一次退出程序",Toast.LENGTH_SHORT).show();exitTime = System.currentTimeMillis();} else {exit();}return false;}return super.onKeyDown(keyCode, event);
}

转载于:https://www.cnblogs.com/yl-saber/p/6381339.html

Activity小技巧相关推荐

  1. Android逆向小技巧①:从Activity下手找到切入点,逆向分析支付宝APP

    明确目标 关于Android应用的解包.反编译,在网上已经有无数文章了,此处不再赘述.当你已经使用 [d2j-dex2jar] 和 [jd-gui] 得到了APK反编译后的JAVA代码,面对庞大的代码 ...

  2. adb获取activity得小技巧

    获取activity得小技巧 获取activity得小技巧 前言 命令 获取activity得小技巧 前言 调试遇到得一个问题,需要使用adb调起其他app界面.以前没有想过这个问题,现在做个存档. ...

  3. 最强 Android Studio 使用小技巧和快捷键

    写在前面 本文翻译自 Android Studio Tips by Philippe Breault,一共收集了62个 Android Studio 使用小技巧和快捷键. 根据这些小技巧的使用场景,本 ...

  4. 分享几点Android 开发中的小技巧吧。不知道算不算?

    也不想多说多,就拿几点来给大家分享吧: Android 在XML里面共享同一布局文件 使用XML的方式为背景添加渐变的效果 如何用代码自定义Android 自动生成的标题? 在ActivityGrou ...

  5. Android Studio 小技巧/快捷键 合集

    原文链接: Android Studio Tips by Philippe Breault 原文作者 : Philippe Breault 译文出自 : 掘金翻译计划 译者 : Jaeger, Bru ...

  6. Android 小技巧

    为什么80%的码农都做不了架构师?>>>    原文出处: Dan Lew   译文出处:Android Performance 前言 本文是一篇译文,这篇是这个系列的第一篇.讲述的 ...

  7. android studio导出apk_Android 应用构建速度提升的十个小技巧

    应用的构建速度会直接影响开发效率,本文将带您通过改造一个 Android 应用: "Google 追踪圣诞老人 (Google Santa Tracker)" 来为大家提供十个小技 ...

  8. Android Coding利器之掌握小技巧,助你Coding更上一层楼~

    本文讲的是Android Coding利器之掌握小技巧,助你Coding更上一层楼~,话说前几天在网上浏览到一大牛写的关于Android布局优化的文章,看后感触很深,回过头看看自己写过的代码,发现还是 ...

  9. Android学习--还有一些小技巧

    这些小技巧 通过上面的这些文章,就把简单的安卓项目总结了一遍,当然你说懂这些就可以做Android开发的话还是不行的,欠缺的还有很多,但欠缺的这些我们有只能在工作中去总结以及不断的提高,这篇文章我们还 ...

最新文章

  1. 放弃Maven以后,我用了它。。。
  2. 程序猿生存指南-35 王旭新巢
  3. 移动端调试 weinre
  4. pytest第一版 入门学习
  5. 相邻兄弟选择器(+)、子选择器()、兄弟选择器(~)等用法
  6. plsql强制关闭后再打开提示已停止工作的解决办法
  7. 多频法如何解包裹相位?
  8. Android8.0 学习(15)---适配Android 8.0
  9. atitit 信息化2.0概论 艾提拉解读版读书笔记.docx 目录 1. 企业信息化1.0时代 1.1.6 C/S模式和B/S模式的好坏 1.1.7 大集中的争议 1.1.8 没有解决的孤岛问
  10. 查看android内置(webview)浏览器和系统浏览器内核信息
  11. 着迷英语900句_字体令人着迷
  12. 范围求和 II-c语言解决
  13. 上月用得好好的支付宝获取月账单的Java接口,月初突然返回“入参不合法”的解决方法
  14. java+selenium键盘操作
  15. 本项目基于paddlex实现目标检测
  16. 【记录】PR|一些使用技巧记录
  17. iOS开发 黑暗模式
  18. Symmetric 配置数据库同步
  19. matlab axisxy行列关系,在matlab中axis是什么意思
  20. Nodejs的安全学习

热门文章

  1. 【STM32】DMA相关函数和类型
  2. 【Oracle】Redhat6.5环境下安装oracle11G R2
  3. 【物联网】 Ubuntu中生成交叉编译器xtensa-lx106-elf
  4. linux中的keeplived源码装,Keepalived高可用集群搭建
  5. SpringBoot源码笔记分析
  6. 【读书笔记】沉默的大多数
  7. css expressionr,CSS Expression讲解
  8. CFileFind 遍历目录与子目录
  9. Aizu 2224 Save your cats
  10. Consul etcd ZooKeeper euerka 对比