当前位置:   article > 正文

Activity四种启动方式生命周期变化(一)_singletop生命周期

singletop生命周期

工作了一年多,虽然写的代码越来越多,但是,发现好多最基础的东西也在一点点淡忘,曾经张口就来的知识,长时间的不用,也需要想很久,甚至遗忘,决定,写一些东西,回忆一些很细节的点,希望和大家一起学习。接下来进入正题。

  1. Activity的四种启动方式
    standard:默认启动方式,每次都会创建一个新的activity实例。允许同一个Activity的多个实例出现在task中。
    singleTop:允许多个实例出现,但不允许在栈顶出现两个连续的实例,如果2个实例连续出现则复用前一个实例对象,如多不是连续出现,则可以创建多个相同Activity的实例。
    singleTask:每个Activity只允许有一个实例出现在栈中,如果启动2个相同的Activity则复用之前的Activity,并且将该Activity之上的其他Activity全部destroy掉。
    singleInstance:每个Activity都只能有一个实例,如果创建新的实例则会复用该实例,但是每个标记为singleInstance的实例都会单独运行在一个task中,并且该task不允许出现其他Activity。

    以上是对四种启动模式的简述,当然,这不是我们今天讲述的重点内容,接下来我们将讲述当一个activity被标记为singleTask时,启动它时,它的生命周期是如何变化的。

  2. 当Activity被标记为singleTask
    我们先新建2个Activity,命名为FirstActivity和SecondActivity,其中SecondActivity标记为singleTask。

public class FirstActivity extends AppCompatActivity {
   
    private final static String TAG = "firstactivity";
    private Button mSecondActivityButton;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_first);
        Log.d(TAG,"onCreate");
        mSecondActivityButton = (Button)findViewById(R.id.second_activity_button);
        mSecondActivityButton.setOnClickListener(new View.OnClickListener() {
            
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/opred/article/detail/60689
推荐阅读
相关标签
  

闽ICP备14008679号