本文主要描述:

1.分辨系统杀掉退出还是用户主动退出
2.分辨全新的创建还是系统恢复性的创建

1.分辨系统杀掉退出还是用户主动退出

当一个组件失去焦点后,系统有可能为了释放资源而杀掉这个组件,这个时候系统会调用到onSaveInstanceState方法用来通知保存一些状态数据。而如果用户是按下了back键或者在代码的某个地方 执行了context.finish()而导致组件退出,则不会走到onSaveInstanceState方法。

所以可以根据是否走到了onSaveInstanceState方法来判断组件是被系统杀掉退出还是用户主动退出

2.分辨全新的创建还是系统恢复性的创建

同理,如果是系统杀掉了组件,那么如果将来需要恢复这个组件(即组件重建,比如旋转屏幕),那么在onCreate中传来savedInstanceState这个Bundle数据就不是空的。反之若是新创建的组件,这个Bundle一定是空的。

所以在写一个activity的时候,在onCreate里面要处理这个组件是新创建的还是系统恢复性的创建,这个对后面的后续的逻辑是有区别的。

比如一个邮件的撰写邮件:

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); if(savedInstanceState != null)
{
lastState = savedInstanceState.getBoolean("***");
// restore last view
}else
{
String action = getIntent().getAction();
if(Intent.ACTION_SEND.equals(action) || Intent.ACTION_SENDTO.equals(action) || Intent.ACTION_VIEW.equals(action)
|| Intent.ACTION_SEND_MULTIPLE.equals(action))
{
//send email, then parse the sender name or text content from intent. init the email sending view
}
}
}

最新文章

  1. 简历生成平台项目开发-STEP5初步界面demo实现
  2. asp.net 无法加载程序集***
  3. 虚幻4外包团队-推荐非常全面的的Unreal教程
  4. duilib 的IE浏览器控件去边框和去滚动条的代码
  5. pigcms 标签读不出
  6. 【转】Web应用的组件化开发(一)
  7. jQuery_效果(淡入淡出)
  8. Linux之最最最最基础(包括在虚拟机中安装linux系统)
  9. php curl详细解析和常见大坑
  10. 【LeetCode】284. Peeking Iterator
  11. ArcGIS Runtime SDK是什么?
  12. Java Calendar类的使用总结
  13. TCP连接笔记
  14. 让用户输入一个日期字符串,将其转换成日期格式, 格式是(yyyy/MM/dd,yyyyMMdd,yyyy-MM-dd)中的一种, 任何一种转换成功都可以; 如果所有的都无法转换,输出日期格式非法。
  15. 树莓派做路由器_配置防火墙filter和nat转发_转载
  16. 基于虹软 2.0 人脸识别猜年龄 java版 demo
  17. 【NLP】pyhanlp flask
  18. MySql修改WordPress密码
  19. 2018-2019-2 网络对抗技术 20165322 Exp4 恶意代码分析
  20. 使用Mybatis连接到Mysql报错,WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be esta

热门文章

  1. 剑指Offer面试题:11.调整数组顺序使奇数位于偶数前面
  2. kali视频(21-25)学习
  3. docker -ce(社区免费版)
  4. 剑指offer-第六章面试中的各项能力(不用加减乘除做加法)
  5. tomcat启动报错:java.lang.NoClassDefFoundError
  6. plsql无法连接64位oracle数据库的解决方法
  7. Win10的Hosts文件修改后无法保存的问题解决方法,实测可以
  8. FPGA中RAM使用探索
  9. Go基本语句
  10. 概念与用法-cookie,session,auth (认证系统)