调试与运行结果不一致?第一次运行正确,后面错误,由于多线程修改UI吗?

先说说问题背景:使用Eclipse安装android程序到手机,调试ok,达到预想效果,退出,重新打开程序,No,部分UI界面未显示,Why?

首先想到的是多线程问题,调试与运行结果不一致说明中间存在时间差,因为单步调试的时候时间会被延长,然后找原因点,程序中修改UI

的代码分两部分,1部分修改好友图像,2部分更新地图,1是通过AsyncHttpClient异步从后台取数据,2则不涉及异步问题,在线程上测试了

很久,没搞定。

今天早上过来,突然意识到,修改地图的activity是新增的,不像其他activity是继承自appactivity,由于重写了退出函数,是不是mapactivity

一直没有关闭,所以第一次运行正确,后面错误呢?

参考http://blog.csdn.net/sunnyfans/article/details/7688092上提到的方法,在退出时清除mapactivity,果然是这个问题!

分析:调试与运行结果不一致,并不一定是因为线程原因,因为调试很可能是程序第一次运行,yes达到预期效果,但由于某些activity没有完全

退出,导致后面运行结果错误!

时间: 2024-08-25 03:43:56

调试与运行结果不一致?第一次运行正确,后面错误,由于多线程修改UI吗?的相关文章

VS下 debug与release运行结果不一致

网罗了大量文章,主要说变量未初始化的较多,代码量较大,着实不好搞,依次排查,但凡涉及的都已经初始化,无果... eggs hurt~~~持续~~~ 最后初步敲定嫌疑:PI的问题,每次用到介个全局变量的时候就报错,把代码中PI用3.1415926****代替,无果... eggs hurt~~~持续~~~ NNGX,PI的定义在.h头文件里,最后挪到.cpp里好了,有中踏空感~擦一下~Mark一下~ 网罗的大量文章里面推荐一篇,(貌似这哥们儿也是转的,呃...不深究了) 地址:http://blo

Hyperledger-fabric 手动操作第一次运行简单网络

Hyperledger-fabric 手动操作第一次运行简单网络 尽量使用fabric-sample/first-network目录中的yaml文件进行配置,第一次自己写配置文件问题很多都不知道怎么解决 创建一个文件夹存放命令执行过程中生成的相关文件 mkdir mynetwork # 创建存放证书的文件夹 cd mynetwork # 使用模板生成证书 cryptogen showtemplate > crypto-config.yaml #修改yaml文件中的内容使符合业务需求 crypto

eclipse 运行php时,运行配置,和调试配置的设置

对于wamp的安装前面的一篇博客里已经提到了,这里不再多说了, 对于eclipse的安装,可以参考下面的博客 eclipse的安装 http://jingyan.baidu.com/album/d7130635194f1513fcf47557.html php插件的安装 http://www.jb51.net/article/52408.htm 安装好以后,记得吧workplace的目录设置为wamp的网站目录下哦,这个很重要,要不然项目不会运行的,这个时候就要配置apche,和mysql,还有

运行startx后Ubuntu密码正确进不去的问题

今天在命令行里敲了 startx ,然后系统重启,输入密码后,跳转到一下界面,之后又返回到登陆界面.一直这样循环输入密码,进不去系统. 然后不得不用手机在网上查找解决办法. 解决步骤如下: 1,Ctrl+Alt+F3 切换到控制台登陆 2,cd~ 3,rm -rf .Xaut* 4, Ctrl+Alt+F7回到登陆界面,输入密码正常登陆. 进不去的原因是什么? 在tty执行startx会生成的一个文件,ubuntu的登陆器是lightdm,这个登陆器发现你家目录里有这个文件就会死循环,让你无限输

[UWP小白日记-1]判断APP是否是第一次运行初始化SQLITE数据库

利用应用程序设置来实现此功能. 1.首先,获取APP设置的容器: ApplicationDataContainer localSettings = ApplicationData.Current.LocalSettings; 由于获取容器的时候并没有给key为FirestStart的赋值,所以下面就直接判断是不是为null,为null就是第一次运行APP, 然后在else里给key为FirestStart的赋值,那么else的代码就只能执行一次了.当然以后在UI上可以添加一个switchButt

QSqlDatabase::addDatabase第一次运行的时候,生成SQLite文件的同时会产生一个默认连接

QSqlDatabase::addDatabase第一次运行的时候,生成SQLite文件的同时会产生一个默认连接: QSqlDatabase database = QSqlDatabase::addDatabase("QSQLITE"); QString myconn = m_createname = database.connectionName(); database.setDatabaseName(myfile); 然而真正查询的时候,却又使用了新的连接:m_database =

在Vista以上版本运行WTL程序,有时候会提示“这个程序可能安装补正确...”的错误

在Win7/Vista下,如何以兼容模式运行exe? https://msdn.microsoft.com/en-us/library/dd371711(VS.85).aspx 问题描述:在Vista以上版本运行WTL程序,有时候会提示“这个程序可能安装补正确...”的错误,如下图所示: 解决方法:需要在VS中设置,工程属性->Configuration Properties->Manifest Tool->Input and Output->Addition Manifest F

为什么预估运行计划与真实运行计划会有差异?

云和恩墨北区技术project师 专注于 SQL 审核和优化相关工作.以前服务的客户涉及金融保险.电信运营商.政府.生产制造等行业. 郭成日 本文由恩墨大讲堂154期线上分享整理而成. 一问题概要 对同一个 SQL 语句的 ExplainPlan 里显示的预估运行计划与通过 V$SQL_PLAN 视图获取的 Runtime Plan 真实运行计划,偶尔会发现两边有不一致的情况,为什么呢?为什么预估运行计划会不准确?如何才干避免这样的情况的发生? 二问题解答 这是运行计划相关中会被常常问道的问题,

深入解析父子线程(父子线程相互独立,子线程使用自己的栈空间,进程要等到所有线程终止运行之后才终止运行)

说起多线程,我们可以说起一大堆和它相关的有趣话题来,比如什么子孙线程关系,父子线程关系,线程同步异步之类的研究话题来,而我今天所说的,是关于父子线程的一些有趣现象. 首先提出一个问题,“在多线程的应用程序中,当父线程结束之后,子线程会不会退出呢?”,本文将围绕这个问题,深入分析windows中父子线程的生命周期及他们之间的关系. 我们知道,不管你使用的是何种编程语言,但当我们在windows下编程,且使用了平台相关性的库的时候,不管我们使用什么函数来创建线程,最终的结果是,我们的代码中都会调用C