zoukankan      html  css  js  c++  java
  • Activity的onRestart()方法调用时机

    在项目中看到Activity使用onRestart(),平时对这个方法的调用时机知道的比较少,研究一下它啥时候会被调用。

    代码很简单:

    1. <span style="font-size:18px;">public class MainActivity extends AppCompatActivity {  
    2.   
    3.     @Override  
    4.     protected void onCreate(Bundle savedInstanceState) {  
    5.         super.onCreate(savedInstanceState);  
    6.         setContentView(R.layout.activity_main);  
    7.         Button btn = (Button) findViewById(R.id.btn);  
    8.         btn.setOnClickListener(new View.OnClickListener() {  
    9.             @Override  
    10.             public void onClick(View v) {  
    11.                 Intent intent = new Intent(MainActivity.this, MainActivity1.class);  
    12.                 startActivity(intent);  
    13.             }  
    14.         });  
    15.         Log.e(MainActivity.class.getSimpleName(), "onCreate()");  
    16.     }  
    17.   
    18.     @Override  
    19.     protected void onRestart() {  
    20.         super.onRestart();  
    21.         Log.e(MainActivity.class.getSimpleName(), "onRestart()");  
    22.     }  
    23.   
    24.     @Override  
    25.     protected void onStart() {  
    26.         super.onStart();  
    27.         Log.e(MainActivity.class.getSimpleName(), "onStart()");  
    28.     }  
    29.   
    30.     @Override  
    31.     protected void onResume() {  
    32.         super.onResume();  
    33.         Log.e(MainActivity.class.getSimpleName(), "onResume()");  
    34.     }  
    35.   
    36.     @Override  
    37.     protected void onPause() {  
    38.         super.onPause();  
    39.         Log.e(MainActivity.class.getSimpleName(), "onPause()");  
    40.     }  
    41.   
    42.     @Override  
    43.     protected void onStop() {  
    44.         super.onStop();  
    45.         Log.e(MainActivity.class.getSimpleName(), "onStop()");  
    46.     }  
    47.   
    48.     @Override  
    49.     protected void onDestroy() {  
    50.         super.onDestroy();  
    51.         Log.e(MainActivity.class.getSimpleName(), "onDestroy()");  
    52.     }  
    53. }  
    54. </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

     
  • 相关阅读:
    pytest中参数化 @pytest.mark.parametrize()
    sublime text3 更换主题
    pytest中的assert断言
    python下文件的删除以及文件目录的清空
    python 在虚拟环境中安装项目依赖requirements.txt
    pycharm中配置默认的作者信息模板
    公司八点准点播放的歌曲《共和国之恋》
    应用程序pycharm 无法打开 【jetbrains家族软件打开报错】
    macbook 安装homebrew失败
    中文分词概述及结巴分词原理
  • 原文地址:https://www.cnblogs.com/ldq2016/p/6952989.html
Copyright © 2011-2022 走看看