Activity的onRestart()方法调用时机
在项目中看到Activity使用onRestart(),平时对这个方法的调用时机知道的比较少,研究一下它啥时候会被调用。
代码很简单:
- <span style="font-size:18px;">public class MainActivity extends AppCompatActivity {
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- Button btn = (Button) findViewById(R.id.btn);
- btn.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- Intent intent = new Intent(MainActivity.this, MainActivity1.class);
- startActivity(intent);
- }
- });
- Log.e(MainActivity.class.getSimpleName(), "onCreate()");
- }
- @Override
- protected void onRestart() {
- super.onRestart();
- Log.e(MainActivity.class.getSimpleName(), "onRestart()");
- }
- @Override
- protected void onStart() {
- super.onStart();
- Log.e(MainActivity.class.getSimpleName(), "onStart()");
- }
- @Override
- protected void onResume() {
- super.onResume();
- Log.e(MainActivity.class.getSimpleName(), "onResume()");
- }
- @Override
- protected void onPause() {
- super.onPause();
- Log.e(MainActivity.class.getSimpleName(), "onPause()");
- }
- @Override
- protected void onStop() {
- super.onStop();
- Log.e(MainActivity.class.getSimpleName(), "onStop()");
- }
- @Override
- protected void onDestroy() {
- super.onDestroy();
- Log.e(MainActivity.class.getSimpleName(), "onDestroy()");
- }
- }
- </span>
(1)启动这个demo执行如1;onCreate()--->onStart()--->onResume()这三个方法
(2)按下home键执行如2;onPause()--->onStop()这两个方法
(3)再次打开这个demo执行如3;onRestart()--->onStart()--->onResume()三个方法。
(4)点击界面的btn,跳转到另一个Activity1,会执行如下图1;onPause()--->onStop()两个方法
(5)从Activity1返回,会执行如下图2;onRestart()--->onStart()--->onResume()三个方法
(6)切换到其他的应用,执行如下图1;onPause()--->onStop()两个方法
(7)从其他应用切换回来,执行如下图2;onRestart()--->onStart()--->onResume()三个方法
总结:可以看到以下几种情况下onRestart()方法是会被调用的,测试的手机MI 2S,系统版本4.1.1。
(1)按下home键之后,然后切换回来,会调用onRestart()。
(2)从本Activity跳转到另一个Activity之后,按back键返回原来Activity,会调用onRestart();
(3)从本Activity切换到其他的应用,然后再从其他应用切换回来,会调用onRestart();
想知道更详细的Activity生命周期,还可以参考一下文章:
http://blog.csdn.net/liuhe688/article/details/6733407
http://blog.csdn.net/android_tutor/article/details/5772285
Activity的onRestart()方法调用时机的更多相关文章
- +load和+initialize方法调用时机
一.+load方法什么时候调用 +load方法会在runtime加载类.分类时调用(程序运行起来会先去加载调用+load 跟你引用没有引用其头文件没有关系).每个类.分类的+load,在程序运行过程中 ...
- Activity生命周期方法调用finish后的不同表现
今天宿舍一个哥们出去面试遇到了这个面试题:"在activity oncreate()调用finish()"生命周期是怎么样的? 我赶紧写了些demo,发现确实很有趣: packag ...
- Activity生命周期方法的调用顺序project与測试日志
以下为測试activity的方法的运行顺序 project与測试资源地址 androidproject AndroidManifest.xml <? xml version="1. ...
- (copy)赋值构造函数的4种调用时机or方法
第一种调用方法: demo #include <iostream> using namespace std; class Text { public: Text() // 无参数构造函数 ...
- Android之Activity界面跳转--生命周期方法调用顺序
这本是一个很基础的问题,很惭愧,很久没研究这一块了,已经忘得差不多了.前段时间面试,有面试官问过这个问题.虽然觉得没必要记,要用的时候写个Demo,打个Log就清楚了.但是今天顺手写了个Demo,也就 ...
- setResult()的调用时机
今天遇到这样一个问题,我在Activity-A中用startActivityForResult()方法启动了Activity-B,并且在B中通过setResult()方法给A返回值,由于某些原因不能在 ...
- android onNewIntent调用时机
(转自:http://www.cnblogs.com/zenfly/archive/2012/02/10/2345196.html) 在IntentActivity中重写下列方法:onCreate o ...
- Android——旋转屏幕导致Activity重建解决方法
Android开发文档上专门有一小节解释这个问题.简单来说,Activity是负责与用户交互的最主要机制,任何“设置”(Configuration)的改变都可能对Activity的界面造成影响,这时系 ...
- onSaveInstanceState(Bundle outState)的调用时机
原文摘自: http://handsomeliuyang.iteye.com/blog/1407044 Activity的方法onSaveInstanceState(Bundle outState), ...
随机推荐
- plsql编程
ORACLE PL/SQL编程详解 SQL语言只是访问.操作数据库的语言,并不是一种具有流程控制的程序设计语言,而只有程序设计语言才能用于应用软件的开发.PL /SQL是一种高级数据库程序设计语言,该 ...
- docker端口的映射顺序
sudo docker run -d -p 8080:80 --name static_web jamtur01/static_web nginx -g "dameon off;" ...
- js获取触发事件的元素
//获取事件 var e = window.event; //获取元素 obj = e.target || e.srcElement; console.log(e); checkRepeat(e.ta ...
- 只显示前几条数据的sql语句写法 七种数据库中Select Top的使用方法
七种数据库中Select Top的使用方法 1. Oracle数据库 SELECT * FROM TABLENAME WHERE ROWNUM <= N 2. Infomix数据库 SELECT ...
- BZOJ 3509 [CodeChef] COUNTARI ——分块 FFT
分块大法好. 块内暴力,块外FFT. 弃疗了,抄SX队长$silvernebula$的代码 #include <map> #include <cmath> #include & ...
- 优化Angularjs的$watch方法
Angularjs的$watch相信大家都知道,而且也经常使用,甚至,你还在为它的某些行为感到恼火.比如,一进入页面,它就会调用一次,我明明希望它在我初始化之后,值再次变动才调用.这种行为给我们带来许 ...
- Java EE 学习(2):使用 IDEA 开发 最简java web
参考:http://www.cnblogs.com/carsonzhu/p/5468223.html 使用IntelliJ IDEA开发java web 前言:由于本人以前简略的学习过 java 语言 ...
- 简单实现UIlabel可复制功能
作者 Sunshine_tt 关注 在我们日常的开发中经常会遇到一些小需求,比如需要长按控件来拷贝控件中得内容.我们知道在iOS中有三个控件自身是支持拷贝,粘贴的,如:UITextField,UITe ...
- html5 的 webScoket 和 C# 建立Socket连接
最近使用的web项目中,需要服务器直接触发前端显示效果. 所以研究了一下websocket: 名词解释: WebSocketWebSocket协议是一种双向通信协议,它建立在TCP之上,同http一样 ...
- 利用Docker搭建本地https环境的完整步骤
利用Docker搭建本地https环境的完整步骤 这篇文章主要给大家介绍了关于如何利用Docker搭建本地https环境的完整步骤,文中通过示例代码将实现的步骤介绍的非常详细,对大家的学习或者工作具有 ...