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

本文探讨了Android中Activity的四种启动模式,尤其是`singleTask`模式下的生命周期变化。通过实例展示了如何在不同启动模式下启动Activity,强调了在`singleTask`模式下,如何处理数据传递和Activity复用的问题,建议在使用`singleTask`、`singleTop`、`singleInstance`时,需重写`onNewIntent`方法来获取数据。
摘要由CSDN通过智能技术生成

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

  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() {
            
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值