onDestroy强制退出后,process crash的处理
@Override
protected void tearDown() throws Exception {
// Finish the Activity off (unless was never launched anyway)
Activity a = super.getActivity();
if (a != null) {
a.finish();
setActivity(null);
}
scrubClass(ActivityInstrumentationTestCase2.class);
super.tearDown();
}
这是tearDown()的源码,可以清晰的看到这里面执行了Activity的finish()方法,执行完后我们的测试程序就结束了。 Activity的finish()执行完后,此时Activity的状态先更改为onPause,然后待系统继续销毁Activity。
1.用Robotium测试框架跑多个用例(写在同一个类里),只有第一个通过,第二个会卡顿, 导致crash
原因是若同一个类里写多个测试方法,每个测试方法都会执行一次setUp() 和tearDown()方法,
所以每一个用例开始时都是用的同一个启动Activity,
如果你上一个用例退出时没有返回到那个Activity,执行下一个用例时会找不到启动Activity,就报错了
解决方法:
在tearDown()里加上返回到开始Activity的方法:solo.goBackto("startActivity");
2.再跑时,发现程序还是会卡在第一个用例结束时无法退出,再检查,
tearDown方法写错了,之前按照网上资料写的,并不好使,还是会引起崩溃
- @Override
- public void tearDown() throws Exception {
- try {
- solo.finalize();// 执行清理工作
- } catch (Throwable e) {
- e.printStackTrace();
- }
- Activity myActivity=getActivity();
- if(myActivity!=null)
- myActivity.finish();// 测试结束,关闭应用程序
- super.tearDown();
- }
复制代码
把关闭方法修改成solo.finishOpenedActivities(); OK了,至于为什么我也没有研究,有谁知道的还请留言告诉我,不胜感激~
最后,我的工程整个tearDown方法如下:
- @Override
- public void tearDown() throws Exception {
- //关闭之前先回到主页面
- Boolean notClosed = true;
- while (notClosed) {
- solo.goBack();
- if (solo.waitForText("确定退出客户端吗", 1, 100, false, true)) {
- notClosed = false;
- solo.clickOnButton("取消");
- break;
- }
- }
- //关闭
- try {
- this.solo.finishOpenedActivities();
- } catch (Throwable e) {
- e.printStackTrace();
- }
- Activity myActivity=getActivity();
- if(myActivity!=null)
- myActivity.finish();
- super.tearDown();
- }
复制代码
onDestroy强制退出后,process crash的处理的更多相关文章
- asp.net网站后台退出后,点后退按钮仍能进,如何安全退出
用户登录成功后,将用户名保存Session Session["usrename"]=username; 退出后Sessssion["username"]=str ...
- C# System.Timers.Timer中的坑,程序异常退出后timer依然运行问题
问题背景 C#小白,由于本公司IM系统服务端(java)是本人独立开发的,加上现在所在项目需要对接IM系统,于是IM的客户端(C#实现)对接工作就交给我了.于是C#小白的我天真的以为只要调用C#端的S ...
- webview中播放视屏,返回或者退出后,仍然会有声音。
解决办法: protected void onPause() { super.onPause(); if (Build.VERSION.SDK_INT >= Build.VERSION_CODE ...
- P2P头部平台退出后,普通人如何避开投资理财的“雷区”?
编辑 | 于斌 出品 | 于见(mpyujian) 近期,P2P市场上不断传来不利消息,引起市场轩然大波,也打乱了投资者投资计划,是继续坚持自己的选择还是另择它路? 18日,陆金所作为千亿头部平台,宣 ...
- mac下firefox复制粘贴失效解决办法
现象:复制粘贴只能在firefox上操作,也就是其他应用内的内容无法复制到firefox,firefox的内容也无法复制其他应用,但是firefox自己的内容可以复制本身(比如各个tab页之间复制) ...
- centOS7.3新安装后,设置IP,以及Putty远程和Xshell远程 (学习是个持续的过程,也许中途放松过,但是仍然能重新捡起来,并学以致用,方为真勇士)
有一段时间没有写学习心得了:现在开始加油,再接再励. 从最基础的开始 1.安装centOS7.3之后设置IP地址.一般linux的系统都是作为服务器的系统来使用,服务器的属性注定了他的IP不能随意的更 ...
- 20155312 张竞予 Exp7 网络欺诈防范
Exp7 网络欺诈防范 目录 基础问题回答 (1)通常在什么场景下容易受到DNS spoof攻击 (2)在日常生活工作中如何防范以上两攻击方法 实验总结与体会 实践过程记录 (1)简单应用SET工具建 ...
- 如何使用Vue-cli搭建和运行vue项目
此文章 主要参考:https://jingyan.baidu.com/article/5225f26bbb430fe6fa0908ce.html 在vue init webpack my-proje ...
- 在vue init webpack my-project卡住的问题
在安装完node.js后,也用cnpm代替了npm,然后使用cnpm在node.js的安装路径下安装了vue-cli:cnpm install --global vue-cli.然后使用vue ini ...
随机推荐
- 8. Truncate undo表空间
8. Truncate undo表空间 要Truncate Undo 表空间,必须为MySQL实例配置至少两个undo表空间(两个undo表空间可确保一个undo表空间保持活动状态,另一个处于脱机状态 ...
- 第五章:C++程序的结构
主要内容: 1.作用域与可见性 2.对象的生存期 3.数据与函数 4.静态成员 5.共享数据的保护 6.友元 7.编译预处理命令 8.多文件结构和工程 作用域:函数原型作用域.块作用域.类作用域.文件 ...
- solr之windws下搭建solr服务
安装Solr 首先保证已经正确安装了Java 下载Solr,当前最新版6.1.0 Solr各个版本下载地址 Solr从6.0之后需要Java1.8所以如果使用Solr6.0及其以上版本,请确保Java ...
- jquery添加属性的方法
$("#id" ).prop('checked', true); $("#id" ).attr('checked', 'true');
- 查看java进程中哪个线程在消耗系统资源
1 top -p $pid -H 加上-H这个参数后,会列出有哪些线程.这样就可以看到哪个线程id最消耗系统资源了.看到的线程id是10进制的数字. 2 jstack $pid 可以打印出制定jav ...
- gridview读取Excel文件中的数据,并将其导入数据库
原文发布时间为:2008-10-16 -- 来源于本人的百度文章 [由搬家工具导入] //将需要导入的文件上传到服务器 string filePath = "" ...
- python监控tomcat日记文件
最近写了一个用python监控tomcat日记文件的功能 实现的功能: 监控日记文件中实时过来的记录,统计每分钟各个接口调用次数,统计结果插入oracle #!/usr/bin/python # -* ...
- ***iOS学习之Table View的简单使用和DEMO示例(共Plain普通+Grouped分组两种)
Table View简单描述: 在iPhone和其他iOS的很多程序中都会看到Table View的出现,除了一般的表格资料展示之外,设置的属性资料往往也用到Table View,Table View ...
- Fibonacci--poj3070(矩阵快速幂)
http://poj.org/problem?id=3070 Description In the Fibonacci integer sequence, F0 = 0, F1 = 1, and Fn ...
- 石家庄地铁查询PSP0级
一.需求 :地铁(石家庄地铁)线路查询 二. 学生:洪鼎淇 合作对象:宋子健 时间记录日志: 日期 开始时间 结束时间 中断时间 净时间 活动 2019/3/30 10:00 14:0 ...