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
最新文章
- ASP.NET 5 单元测试中使用依赖注入
- Xen虚拟化基本原理详解
- react.js基本操练
- asp.net中virtual和abstract的区别分析
- URAL 1957 Wrong Answer 暴力
- LeetCode Search in Rotated Sorted Array 在旋转了的数组中查找
- BZOJ1613: [Usaco2007 Jan]Running贝茜的晨练计划
- 【充分利用你的Azure】将Azure用作云计算平台(1)
- BZOJ 4568: [Scoi2016]幸运数字 [线性基 倍增]
- My Team——面向对象与软件工程实验三
- 洛谷P4551 最长异或路径
- 有趣的JavaScript原生数组函数
- 4 jmeter badboy脚本开发技术详解
- 时间序列 ARIMA 模型 (三)
- 阿里云朱照远: AI打开新视界 8K时代已来!
- MikroTik RouterOS安装chr授权到阿里云虚拟机(转)
- ios开发之--UITableView中的visibleCells的用法
- [py]django上线部署-uwsgi+nginx+py3/django1.10
- TextBox 宽度无效
- 消息队列内核结构和msgget、msgctl 函数