首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android Kotlin仪器化测试在调用finish()启动另一个活动后是否结束/完成另一个活动

Android Kotlin仪器化测试在调用finish()启动另一个活动后是否结束/完成另一个活动取决于另一个活动的启动模式和生命周期管理。

启动模式分为四种:standard、singleTop、singleTask和singleInstance。

  1. 如果另一个活动的启动模式为standard,那么调用finish()后,当前活动会被销毁,而新的活动会被启动。在这种情况下,当前活动并不会等待新的活动完成。
  2. 如果另一个活动的启动模式为singleTop,那么当新的活动被启动时,系统会检查当前活动的顶部是否为新的活动。如果是,则不会创建新的活动,而是会调用当前活动的onNewIntent()方法来处理新的意图。在这种情况下,当前活动会继续存在,并且可以通过onNewIntent()方法获取新的意图。
  3. 如果另一个活动的启动模式为singleTask,那么当新的活动被启动时,系统会先销毁位于该活动之上的所有活动,然后重新创建新的活动。在这种情况下,当前活动会等待新的活动完成。
  4. 如果另一个活动的启动模式为singleInstance,那么系统会为该活动创建一个新的任务栈,并且只允许该活动在这个任务栈中存在。在这种情况下,当前活动会等待新的活动完成。

总结起来,如果另一个活动的启动模式为standard或singleTop,那么调用finish()后当前活动不会等待新的活动完成;如果另一个活动的启动模式为singleTask或singleInstance,那么调用finish()后当前活动会等待新的活动完成。

在仪器化测试中,可以通过验证活动是否被销毁或通过监听活动的生命周期方法来判断活动是否完成。常用的测试框架如Espresso、UI Automator和Robolectric都提供了相关的工具和方法来进行测试。

对于Android Kotlin仪器化测试,腾讯云提供了云移动测试服务,可以帮助开发者进行移动端的自动化测试。相关产品介绍和链接如下: 腾讯云移动测试服务:https://cloud.tencent.com/product/mart 云移动测试文档:https://cloud.tencent.com/document/product/682

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Android基础总结(2)——活动Activity

启动活动时传递数据的思路很简单,Intent中提供了一系列putExtra()方法的重载,可以将我们想要的数据暂存在Intent中,启动另一个活动,只需要将这些数据取出就可以了。    ...此时的活动一定位于返回栈栈顶,并且处于运行状态。 onPause():系统准备去启动或恢复另一个活动的时候调用。...一般情况下在onCreat()中完成各种初始的操作,onDestroy()中完成释放内存的操作。 Activity的可视生命周期:从调用onStart()到相应的调用onStop()。...则是onResume之前触发回复状态,至于复写这个方法onCreate方法是否会被调用。...系统不在乎这个活动是否已经返回栈中存在,每次启动都会创建该活动的一个新的实例。 singleTop:启动活动时如果发现返回栈的栈顶已经是该活动了,则认为可以直接使用它,不用再创建新的活动实例。

1.2K90

Android 精通活动「activity」四大启动模式

活动的四大启动模式 活动即「activity」对于 Android 应用来说,有着不可剥离的作用,对于初学者一般来说,都只是使用了默认(standard)模式,不管发生什么情况,只要需要活动跳转,就直接新建出一个活动...,最后会在文墨附上 测试 Demo 代码 ---- standard standard 作为四大启动模式中,最最最基本的一种,这里就不过多唠叨了它的特点很明显 每次调用 startActivity()...去建立 Activity Mainfest.xml 里添加: 实例: 可以看到,每次点击不管之前是否存在,建立一个新的,点击返回 调用 finish() ---- singleTop singleTop...字如其名,每次点击新建时,判断栈顶是否为这个 activity 的实例,如果是,则复用该活动的实例 过程 调用 startActivity() 打算进入一个活动 先检查活动栈的顶部是否是这个我活动的实例..."); startActivity(intent); 然而并没有结束 细心的同学会发现我们从(appA)的 ActivitySingleInstance 跳转到下一个活动返回直接返回到首页,而不是

35920
  • 速读原著-Android应用开发入门教程(屏幕间的跳转和事件的传递)

    6.4 屏幕间的跳转和事件的传递 在一般情况下,Android 的每一个屏幕基本上就是一个活动(Activity),屏幕之间的切换实际上就是活动间互相调用的过程,Android 使用 Intent 完成这个动作...6.4.1.跳转的方法 本示例是一个简单的屏幕之间的跳转,从一个屏幕跳转到另一个屏幕,启动第二个屏幕后,前一个屏幕消失。...startActivity(intent); finish(); // 结束当前活动 } 启动第二个活动需要使用 Intent,在其 setClass()函数中设置源和返回的内容,Intent...本例中使用了 finish()函数表示当前的活动结束,这样第二个活动(ForwardTarget)启动时,第一个活动(Forward)已经不存在了。...如果没有调用 finish()函数,第二个活动启动时,第一个活动就处于 OnPause 状态,当第二个活动退出,第一个活动重新出现,也就是会调用活动的 onResume()函数。

    90620

    速读原著-Android应用开发入门教程(屏幕间的跳转和事件的传递)

    6.4 屏幕间的跳转和事件的传递 在一般情况下,Android 的每一个屏幕基本上就是一个活动(Activity),屏幕之间的切换实际上就是活动间互相调用的过程,Android 使用 Intent 完成这个动作...6.4.1.跳转的方法 本示例是一个简单的屏幕之间的跳转,从一个屏幕跳转到另一个屏幕,启动第二个屏幕后,前一个屏幕消失。...startActivity(intent); finish(); // 结束当前活动 } 启动第二个活动需要使用 Intent,在其 setClass()函数中设置源和返回的内容,Intent...本例中使用了 finish()函数表示当前的活动结束,这样第二个活动(ForwardTarget)启动时,第一个活动(Forward)已经不存在了。...如果没有调用 finish()函数,第二个活动启动时,第一个活动就处于 OnPause 状态,当第二个活动退出,第一个活动重新出现,也就是会调用活动的 onResume()函数。

    85010

    Android基础部分再学习---activity的生命周期

    整个生命周期的活动中,系统可能会调用onStart()和onStop()多次,因为活动之间交替进行隐藏或显示给用户。...1、onCreate 最重要是在里面调用setContentView,还可以在里面初始各控件、设置监听、并初始一些全局的变量。...当然相应的需要在onResume中重启或初始等等。 有时候也需要在onPause判断用户是调用finish结束这个Activity,还是暂时离开,以便区分处理。...3.如何强制性关闭一个activity Android结束进程的方法   一、结束一个活动Activity   要主动的结束一个活动Activity,使用finish方法,而且这个方法最后会调用Activity...三、结束另一个进程   要通过一个进程去结束另一个进程。

    89920

    面向初学者的 Android 应用开发基础知识

    Android 编程语言 Android 中,基本上,编程是用两种语言JAVA 或 C++和XML(扩展标记语言)完成的。如今,KOTLIN 也是首选。...每个组件都有自己的角色和生命周期,即从应用程序启动结束。其中一些组件还依赖于其他组件。每个组件都有明确的用途。...它在应用程序启动启动。至少有一个活动始终存在,称为 MainActivity。该活动通过以下方式实施。...例如,当手机的电池电量不足时,Android 操作系统会触发广播消息以启动省电功能或应用程序,收到消息,应用程序会采取适当的措施。...5.OnStop:当活动不再可见时调用。 6.OnRestart:当活动停止并重新启动调用。 7.OnDestroy:当要关闭或销毁活动调用它。

    1.3K20

    Appium+python自动(十四)- 与Capability完美懈垢之解读(超详解)

    1、 什么是Capability   讲capability之前大家是否还记得讲log时给大家看过的启动时的日志?...我们appium中配置app我们能够通过log看出里面的信息都是启动的一些必要配置,通过上面的配置信息我么也能够看出capability配置的就是我们做自动的一些必要信息。...如果capability不告诉server,那么server就不认识你,也就无法完成我们的自动测试。...能力 描述 值 appActivity 要从包中启动Android活动活动名称。这往往需要在一个....如果被测试的应用程序是由另一个定位应用程序创建的,那么将其设置为false将允许使用adb的测试应用程序启动过程中定位应用程序的过程仍然存在。

    3.3K50

    APP测试面试题汇总

    4.操作习惯:Android,Back键是否被重写,测试点击Back键的反馈是否正确;应用数据从内存移动到SD卡能否正常运行等。...8.支付方式:对于一些有内购功能的APP,Android直接调用第三方支付渠道完成支付;IOS需要先在APP store里绑定支付方式,然后通过APP store去完成支付操作。...生命周期即活动从开始到结束所经历的各种状态,从一个状态到另一个状态的转变,从无到有再到无,Activity本质上有四种状态: 运行(Active/Running):Activity处于活动状态,此时Activity...如果一个活动处于停止或者暂停的状态下,系统内存缺乏时会将其结束finish)或者杀死(kill)。...这种非正常情况下,系统杀死或者结束之前会调用onSaveInstance()方法来保存信息,同时,当Activity被移动到前台时,重新启动该Activity并调用onRestoreInstance(

    1.9K31

    大话企业级android读书笔记(二)

    ,系统可以将它从内存移除,通过要求它结束(通过调用它的finish()方法),或简单地杀掉它的进程。...将他们合并在一起,这七个方法定义了活动的整个生命周期。有三个嵌套的循环,你可以通过这七个方法监视: 活动的整个生命时间,从第一次调用onCreate()开始直到调用onDestroy()结束。...在这期间,频繁地重用和暂停状态转换——例如,当设备进入睡眠状态或一个新的活动启动调用onPause(),当一个活动返回或一个新的意图被传输时调用onResume()。...因为onPause()是唯一一个保证进程被杀之前会调用的,因此你应该使用onPause()来写任何持久存储数据。 被标记为No的方法保护活动寄宿的进程在他们调用的时候不会被杀掉。...(),然后是onDestory(). android的接收员:BroadcastReceiver 广播接收者用于异步接收广播Intent 广播接收者没有界面,但是接收到消息可以启动一个Activity

    1K50

    什么是activity的生命周期_activity切换生命周期

    你应该在这个方法中完成Activity的初始操作,比如加载布局、绑定事件等。 这个方法每次活动最开始启动时都会运行,并且每一个活动中只允许这个方法出现一次。 ● (2)onStart()。...此类事件包括接到来电、用户导航到另一个活动或设备屏幕关闭。 ● (4)onPause()。 这个方法系统准备去启动或者恢复另一个Activity的时候调用。...当App准备启动另一个活动时进行回调。 ●(5) onStop()。 这个方法Activity完全不可见的时候调用。...这个方法Activity由停止状态变为运行状态之前调用,也就是Activity被重新启动了。 当活动重新开始运行时回调。...一般情况下,一个Activity会在onCreate()方法中完成各种初始操作,而在onDestroy()方法中完成释放内存的操作。 ● (2)可见生存期。

    93410

    Android入门教程之Activity(生命周期,启动...)

    因此,您不应使用 onPause() 来保存应用或用户数据、进行网络调用,或执行数据库事务。因为该方法完成之前,此类工作可能无法完成。 已进入已停止状态,因此系统将调用 onStop() 回调。...的finish函数处于栈顶的活动就会出栈,前一个入栈的活动就会到栈顶,系统总是显示处于栈顶的活动。...onPause()方法:系统准备去启动或恢复另一个活动调用。表示Activity正在停止,此时可做存储数据,停止动画等操作。 onStop()方法:活动完全不可见的时候调用。...onDestory()方法:活动被销毁之前调用,表示Activity即将销毁,常做回收工作、资源释放。 onRestart()方法:活动由停止状态变为运行状态之前调用。...()方法中完成各种初始操作,而在onDestory()方法中完成释放内存的操作。

    1.1K00

    安卓入门-第二章-探究活动

    点击Finish完成创建。 ​...启动活动时传递数据的思路很简单,Intent中提供了一系列putExtra()方法的重载,可以把我们想要传递的数据暂存在Intent中,启动另一个活动,只需要把这些数据再从Intent中取出就可以了...你应该在这个方法中完成活动的初始操作,比如说加载布局、绑定事件等。 onStart():这个方法活动由不可见变为可见的时候调用。...onResume():这个方法活动准备好和用户进行交互的时候调用。此时的活动一定位于返回栈的栈顶,并且处于运行状态。 onPause():这个方法系统准备去启动或者恢复另一个活动的时候调用。...finish() 我们确保了活动调用了onDestroy方法活动已经关闭,故没必要将其放置于链表中,所以进行移除链表操作,并且虽然即使不移除,可能也不会有空指针报错,但是某个活动调用ActivityCollector.finishAll

    2.9K20

    Android学习笔记,不断更新

    androidTest 此处是用来编写Android Test 测试用例的,可以对项目进行一些自动测试。...test 此处是用来编写Unit Test 测试用例的,是对项目进行自动测试的另一种方式。...,可以把我们想要传递的数据暂存在Intent 中,启动另一个活动,只需要把这些数据再从Intent中取出即可。...这每个活动中我们都重写了这个方法,它会在活动第一次被创建的时候调用。你应该在这个方法中完成活动的初始操作,比如说加载布局、绑定事件等。 ​ onStart()。...这个方法系统准备去启动或者恢复另一个活动的时候调用。我们通常会在这个方法中将一些消耗CPU 的资源释放掉,以及保存一些关键数据,但这个方法的执行速度一定要快,不然会影响到新的栈顶活动的使用。 ​

    1K40

    测一测你对「Activity」的了解

    引言 日常的移动端测试沟通过程中,我们经常会听到开发说到一些平台开发术语,本次小编将对Android四大组件之一的Activity进行些简单的介绍和测试点总结。 ?...通常,应用中的一个Activity会被指定为主Activity,然后,每个Activity可以启动另一个Activity,以执行不同的操作。...onCreate()完成,下一个回调方法将是onStart()。 onStart() onCreate() 退出,Activity将进入“已启动”状态,并对用户可见。...系统调用此回调方法的原因如下: ① Activity即将结束(由于用户彻底关闭Activity或由于系统为Activity调用 finish()); ② 由于配置变更(例如设备旋转或多窗口模式),系统暂时销毁...多次调用时,是否会因销毁不当,引发内存泄漏的问题。

    88110

    简述Activity生命周期「建议收藏」

    活动启动进入栈,处于栈顶,当Back或finish()销毁一个活动时,栈顶的活动会出栈,前一个入栈的活动重新处于栈顶位置,显示给用户。 活动状态 运行状态:处于栈顶。...(系统最倾向回收此状态的活动,保证手机内存充足) 生存期 onCreate()活动第一次被创建的时候调用。作用:完成初始操作,如:加载布局,绑定事件等等。...onPause()系统准备启动或者恢复另一个活动时被调用。作用:消耗CPU的资源释放掉,保存一些关键数据,此方法速度一定要快,不然会影响新的栈顶活动使用。 onStop()活动完全不可见时调用。...onDestroy()活动被销毁之前调用。作用:会完成释放内存的操做。...三种生存周期: ①完整生存周期:onCreate()方法到onDestroy()方法之间经历的,就是完整生存期。前者完成所有初始操作,后者完成释放内存的操作。

    24710

    实战 | 使用揭露动画(Reveal Effect)做一个丝滑的Activity转场动画

    ; 这篇文档跟代码算是帮上大忙了,有较大的参考价值; 不同的是作者的思路是跳转的目标活动中,启动做揭露动画的收挽,收挽结束finish(); 我这里根据情况修改为跳转的目标活动中按下返回键即...finish(),完了之后原始活动中的onReStart()中做揭露动画的收挽;另外我在在跳转的目标活动完成揭露动画展开的时候,添加了一个AlphaAnimation; 这边的起始活动用的是button...详细可见参考文档; “丝滑”之解 这个转场动画要实现得丝滑,需要注意几个细节: 活动A跳转到活动B的情况下, a.A点击触发跳转时刻,揭露动画要放在哪个活动展开; b.B按下返回键之后,揭露动画又要放在哪个活动收挽...子线程中get坐标对,调用createRevealAnimator()创建并配置一个animator;--->> 2.3....而实际上并不是;展开完毕,再把view层去掉,去掉之后下层的活动内容自然就显示出来了。)

    1.9K30

    ​Activity的生命周期【建议收藏】

    Android是使用任务来管理Activity的,一个任务就是一组存放在栈里的Activity的集合,这个栈也被称为返回栈,栈是一种先进出的数据结构,默认情况下,每当我们启动一个新的Activity...Activity的生命周期 中的状态 (大前端之旅) Activity的生存期 1、 onCreate():每个活动都会重写这个方法,它是活动第一次被创建的时候调用,你应该在这个方法中完成活动的初始操作...,此时的活动一定位于返回栈的栈顶,并处于运行状态,也就是恢复被Pause(暂停)的Activity;; 4、 onPause():这个方法系统准备去启动或者恢复另一个活动的时候调用,通常会在这个方法中将一些消耗...6、 onDestroy():这个方法活动被销毁之前调用,之后活动的状态将变为销毁状态,也就是终止Activity, 转换为非活动状态; 7、 onRestart():这个方法活动由停止状态变为运行状态之前调用...一般情况下,一个活动会在onCreate()方法中完成各种初始操作,而在onDestroy()方法中完成释放内存的操作; 2、 可见生存期:活动onStart()方法和onStop()方法之间所经历的

    51520

    16.Android-activity生命周期与启动模式

    比如:当前APP出现一个非全尺寸的对话框 停止状态 如果一个活动完全被另一个活动遮挡住了,它就会被停止。...比如:APP在后台运行 销毁状态 activity被系统杀死或者调用finish方法主动退出 可以重写的方法有: onStart() : 当onCreate()之后,会调用该方法 onResume()...: 当onStart ()之后或者取消暂停,会调用该方法 onRestart() : 当取消停止,会调用该方法 onPause() : 当另个非全尺寸或透明的活动将焦点放在了活动的顶部,那么该活动就会进入暂停状态...,然后调用该方法 onStop() : 当前活动被另个活动完全覆盖(比如有人打电话过来),那么该活动就会进入停止状态,然后调用该方法,一般在这个方法中停止所有关于刷新界面的操作. onDestroy(...) : activity被系统杀死或者调用finish方法主动退出,那么会调用该方法, 一般在这个方法中用于释放资源, 2.activity启动模式 Android开发中,如果我们通过一个按钮重复打开

    57510

    AndroidStdio1_5

    启动活动时传递数据的思路很简单,Intent中提供了一系列putExtra()方法的重载,可以把我们想要传递的数据暂存在Intent中,启动另一个活动,只需要把这些数据再从Intent中取出就可以了...确定数据是从SecondActivity返回的之后,我们再通过resultCode的值来判断处理结果是否成功。最后从data中取值并打印出来,这样就完成了向上一个活动返回数据的工作。...这个方法你已经看到过很多次了,每个活动中我们都重写了这个方法,它会在活动第一次被创建的时候调用。你应该在这个方法中完成活动的初始操作,比如说加载布局、绑定事件等。 ❑ onStart()。...这个方法系统准备去启动或者恢复另一个活动的时候调用。我们通常会在这个方法中将一些消耗CPU的资源释放掉,以及保存一些关键数据,但这个方法的执行速度一定要快,不然会影响到新的栈顶活动的使用。...一般情况下,一个活动会在onCreate()方法中完成各种初始操作,而在onDestroy()方法中完成释放内存的操作。 ❑ 可见生存期。

    62230
    领券