Android不同启动模式下的生命周期

本文详细解析了Android中Activity的四种启动模式:singleTop、singleTask、singleInstance及其在不同情况下的生命周期回调方法,帮助开发者更好地理解并运用这些模式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

singleTop:栈顶复用模式。如果activity在栈顶,就不用重新创建。

  • 其他activity再次启动它,回调以下方法:
05-17 18:00:26.793: I/TAG(23870): onCreate(savedInstanceState)....
05-17 18:00:26.804: I/TAG(23870): onStart.....
05-17 18:00:26.804: I/TAG(23870): onResume.....
  • 如果在栈顶再次启动自己,则回调以下方法:
05-17 17:52:12.823: I/TAG(21352): onPause.....
05-17 17:52:12.823: I/TAG(21352): onNewIntent(intent).....
05-17 17:52:12.823: I/TAG(21352): onResume.....

singleTask:栈内复用模式。只要activity在一个栈中存在,就不会创建实例。自带clearTop功能,清光在它之上的所有activity。

  • 其他activity再次启动它时,回调以下方法:
05-17 17:56:57.969: I/TAG(22539): onNewIntent(intent).....
05-17 17:56:57.969: I/TAG(22539): onRestart.....
05-17 17:56:57.978: I/TAG(22539): onStart.....
05-17 17:56:57.978: I/TAG(22539): onResume.....
  • 自身启动自身,回调以下方法:
05-17 17:58:12.184: I/TAG(22539): onPause.....
05-17 17:58:12.184: I/TAG(22539): onNewIntent(intent).....
05-17 17:58:12.184: I/TAG(22539): onResume.....

singleInstance:单实例模式。只能单独位于一个任务栈中。

  • 启动自身,回调此方法:
05-17 18:02:09.701: I/TAG(24854): onPause.....
05-17 18:02:09.701: I/TAG(24854): onNewIntent(intent).....
05-17 18:02:09.701: I/TAG(24854): onResume.....
  • 其他activity第一次启动它,回调以下方法:
05-17 18:02:04.787: I/TAG(24854): onCreate(savedInstanceState)....
05-17 18:02:04.790: I/TAG(24854): onStart.....
05-17 18:02:04.790: I/TAG(24854): onResume.....
  • 其他activity再次启动它,回调以下方法:
05-17 18:03:21.662: I/TAG(24854): onNewIntent(intent).....
05-17 18:03:21.662: I/TAG(24854): onRestart.....
05-17 18:03:21.663: I/TAG(24854): onStart.....
05-17 18:03:21.663: I/TAG(24854): onResume.....
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值