activity 启动模式_测一测你对Activity的了解

引言

在日常的移动端测试沟通过程中,我们经常会听到开发说到一些平台开发术语,本次小编将对Android四大组件之一的Activity进行些简单的介绍和测试点总结。

281a35796ac850958713aa2d6798ba0e.png

Activity介绍

1、Activity 概览

Activity是Android最基本的四大组件之一(Activity,Service,ContentProvider,BroadcastReceiver),其中Activity主要负责与用户进行交互。 提到应用与用户的交互,最常见的是页面形式,对于单个页面,从实现上说会有很多元素,可归类为M(model)V(view)C(control),这些元素数据可以通过Activity进行集成管理,最终展示一个用户交互的页面。当然,页面的实现除了Activity之外还有Fragment,本次我们主要介绍Activity。 通常,应用中的一个Activity会被指定为主Activity,然后,每个Activity可以启动另一个Activity,以执行不同的操作。另外, Activity也会经常启动属于其他应用的Activity。 例如,浏览器应用 的Activity 可能会启动社交媒体应用的“分享”Activity。

c788b8578c422cddb216af111073d780.png

2、Activity生命周期

Activity的生命周期直接影响到与用户的交互,因此生命周期很重要。当用户浏览、退出和返回到应用时,应用中的Activity会在其生命周期的不同状态间转换。 为了在Activity生命周期的各个阶段之间导航转换,Activity 类提供六个核心回调方法:onCreate()、onStart()、onResume()、onPause()、onStop() 和 onDestroy()。

eb8d51dfcdf671bfba968dee1b4e4154.png

onCreate()

此回调方法会在系统创建Activity时触发。onCreate()完成后,下一个回调方法将是onStart()。

onStart()

onCreate() 退出后,Activity将进入“已启动”状态,并对用户可见。此回调方法包含 Activity进入前台与用户进行互动之前的最后准备工作。

onResume()

系统会在Activity开始与用户互动之前调用此回调方法。此时,该Activity位于Activity堆栈的顶部,并会捕获所有用户输入。应用的大部分核心功能都是在onResume()方法中实现的。此类输入事件可包括接到来电、用户导航到另一个Activity,或设备屏幕关闭。onResume()回调方法后面总是跟着onPause() 。

onPause()

系统将此方法视为用户将要离开您的Activity的第一个标志(这并不总是意味着Activity会被销毁);此方法表示Activity不再位于前台(在用户处于多窗口模式时Activity仍然可见)。例如,当用户点击“返回”或“最近使用的应用”按钮时,就会出现此状态。

onPause()执行完毕后,下一个回调方法为onStop()或onResume(),具体取决于 Activity进入“已暂停”状态后发生的情况。

onStop()

当Activity对用户不再可见时,系统会调用onStop()。出现这种情况的原因可能是Activity被销毁,新的Activity启动,或者现有的Activity正在进入“已恢复”状态并覆盖了已停止的Activity。在所有这些情况下,停止的Activity都将完全不再可见。

系统调用的下一个回调方法将是onRestart()(如果Activity重新与用户互动)或者onDestroy()(如果Activity彻底终止)。

onRestart()

当处于“已停止”状态的Activity即将重启时,系统就会调用此回调。onRestart() 会从 Activity停止时的状态恢复Activity。此回调方法后面总是跟着onStart()。

onDestroy()

系统会在销毁Activity之前调用此回调方法。通常,实现onDestroy() 是为了确保在销毁Activity或包含该Activity的进程时释放该Activity的所有资源。

系统调用此回调方法的原因如下:

① Activity即将结束(由于用户彻底关闭Activity或由于系统为Activity调用 finish());

② 由于配置变更(例如设备旋转或多窗口模式),系统暂时销毁Activity。

在应用的生命周期中,应用很可能会多次进入和退出Activity。例如,用户可以点击设备的返回按钮,或者Activity可能需要启动不同的Activity。如果Activity位于前台,并且用户点按了返回按钮,Activity将依次经历onPause()、onStop() 和onDestroy() 回调。活动不仅会被销毁,还会从返回堆栈中移除。

Activity测试总结

1、Activity查询方式

方法一:

1、cmd命令中输入:adb logcat | grep ActivityManager  运行应用,可以实时查看当前正在运行的Activity;

另外,也可以通过输入:adb logcat ActivityManager:I MyApp:D *:S,过滤标记为“ActivityManager”和“MyApp”的日志信息。

5dadac3b238a4587e3400d969609f2f3.png

方法二:

1、cmd命令中输入:adb shell dumpsys activity activities;

也可以使用adb shell dumpsys window | findstr mCurrentFocus 命令查看当前运行的包名和Activity更清晰一些。

163d9ead68331491fcabc5acb387cecd.png

2、测试注意点

Activity是应用中每次用户互动的容器,因此测试应用的Activity时,可以关注以下测试点:

1)Activity相关的应用交互页面的数据、布局、网络请求等的展示响应的正确性;

2)其他应用中断了应用的Activity,例如,在使用应用时接听来电,或切换至另一应用的场景;

3)系统销毁又重新创建了您的Activity,例如,当用户离开应用并在稍后返回时,是否会丢失用户的进度;

4)当屏幕在横向和纵向之间旋转时,是否会崩溃或丢失用户的进度;

5)用户将您的Activity放置在新的窗口环境中,例如画中画 (PIP) 或采用多窗口模式的环境,相关交互页面的展示;

6)当Activity多次调用时,是否会因销毁不当,引发内存泄漏的问题。

注:参考文章

https://developer.android.com/guide/components/activities/intro-activities?hl=zh-cn

https://mp.weixin.qq.com/s/EhmN_5oUBww71dynTWIuyQ






搜狗测试微信号:Qa_xiaoming

0350dd17b23cc69ecaba9b2730abe51f.png

搜狗测试QQ粉丝群:459645679

55f02805db65e949e6ef6e1a9c870b61.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值