活动的生命周期——实践

首先,创建了一个主活动MainActivity,然后创建了两个子活动,NormalActivity和DialogActivity,布局中就使用了非常简单的一个TextView,用于显示一行文字。

最主要的区别就是:这两个活动一个是普通的活动,一个是对话框式的活动。主要是在AndroidManifest.xml中修改<activity>标签:

<activity android:name=".NormalActivity">
</activity>
<activity android:name=".DialogActivity"
    android:theme="@style/Theme.AppCompat.Dialog">
</activity>

在主活动的onCreate() 方法中,我们分别为两个按钮注册了点击事件,点击第一个按钮会启动NormalActivity,点击第二个按钮会启动DialogActivity。然后在Activity的7个回调方法中分别打印了一句话,这样就可以通过观察日志的方式来更直观地理解活动的生命周期。

在运行程序后,观察logcat中的打印日志:

  • 当MainActivity第一次被创建时会依次执行onCreate() 、onStart() 和onResume() 方法。然后点击第一个按钮,启动NormalActivity,
  • 由于NormalActivity已经把MainActivity完全遮挡住,因此onPause() 和onStop() 方法都会得到执行。然后按下Back键返回MainActivity,
  • 由于之前MainActivity已经进入了停止状态,所以onRestart() 方法会得到执行,之后又会依次执行onStart() 和onResume() 方法。注意此时onCreate() 方法不会执行,因为
    MainActivity并没有重新创建。
  • 然后再点击第二个按钮,启动DialogActivity
  • 可以看到,只有onPause() 方法得到了执行,onStop() 方法并没有执行,这是因为
    DialogActivity并没有完全遮挡住MainActivity,此时MainActivity只是进入了暂停状态,并没有进入停止状态。相应地,按下Back键返回MainActivity也应该只有onResume() 方法会得到执行,
  • 最后在MainActivity按下Back键退出程序
  • 此时依次会执行onPause() 、onStop() 和onDestroy() 方法,最终销毁MainActivity。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值