昨天遇到一个非常苦恼的问题,忙到三点多也没解决,今天早上起来,摸索了一下,就解决了。这个给我一个提示,人在累的时候,工作效率很低,还是休息好吧,也许问题解决得更快一点。
好了,不罗嗦,直接上我遇到的问题。高手还是不要看下去了,很小很小的、不小心的错误,不然会忍不住喷火的。
在观察Activity生命周期的时候,我写了三个布局文件main、second、third,second和third的布局文件只放有标识的TextView,并且写了这三个类:
public class ManiActivity extends Activity {
private final static String TAG = "MainActity";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Log.i(TAG, "ManiActivity onCreate");
//当然这里还有一些按钮的事件绑定,用来作activity的跳转
}
@Override
//还有onStart(),onResume(),onPause(),onStop(),onRestart(),onDestroy()的覆盖,都用加上一句Log.i(TAG,"ManiActivity 方法名");
public class SecondActivity extends Activity {
private final static String TAG = "MainActity";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Log.i(TAG, "SecondActivity onCreate");
}
@Override
//还有onStart(),onResume(),onPause(),onStop(),onRestart(),onDestroy()的覆盖,都用加上一句Log.i(TAG,"ManiActivity 方法名");
public class ThirdActivity extends Activity {
private final static String TAG = "MainActity";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Log.i(TAG, "ThirdActivity onCreate");
}
@Override
//还有onStart(),onResume(),onPause(),onStop(),onRestart(),onDestroy()的覆盖,都用加上一句Log.i(TAG,"ThirdActivity 方法名");
有没有问题呢??哈哈...这样看好像比较容易看出来。
这样运行是什么效果呢?不贴图了,就是点击了MainActivity的second按钮之后,跳转到了SecondActivity之后,MainActivity被stop了,SecondActivity开始了,但是SecondActivity是跟MainActivity的视图一样的,但是点击任何按钮都是没有反应的,神奇吧?(tips:高手还是别看下去了,不然你们会忍不住爆粗口的,这个是警示像我这样的菜鸟的)模拟器上退出软件,SecondActivity被Destroy了,再进入软件,第一个开启的是SecondActivity。对于我这样的菜鸟来说,真的有点错愕,为什么不是从MainActivity切入呢?为什么昨晚我的思路就没现在写博客这么清晰呢?哈哈...
就是这一句setContentView(R.layout.main);我图方便,第二个和第三个Activity都是拷MainActivity的,没有改第二第三个activity的布局文件的绑定,还是绑到了main上面。所以,当跳转到第二个activity的时候,MainActivity所在的线程被stop了,SecondActivity被push到了stack顶端,能够拥有点击事件的监听器,但是因为绑定的是main的layout(就是这一句setContentView(R.layout.main);),只能用MainActivity的监听事件,而MainActivity被push到了stack中SecondActivity的下面,不能拥有监听的能力。晕了吧?哈哈...
所以能够在SecondActivity视图中看到MainActivity的视图,并且能够点击,但是点击之后没有反应。而退出软件的时候,SecondActivity被stop并Destroy掉,再进入的时候,因为MainActivity没有被Destroy,在LogCat中就会看到SecondActivity在没有Create MainActivity的时候被Create,产生是否绑错了main.xml就会抢占MainActivity的显示的怀疑,答案是否定的,因为stack中,绑定了main的MainActivity在stack中被堆置到了SecondActivity的下面,自然切入的时候,是先显示SecondActivity(这个时候从LogCat中跟踪是可以看到之前MainActivity是没有被destroy的)。
昨天晚上跟踪了很久,甚至怀疑自己对stack工作的理解是否正确,为什么就没有像现在思路清晰呢?唉...三点半睡觉啊,白牺牲了,原来是这么小的问题,先罚自己写这一篇博文。
分享到:
相关推荐
android-studio-ide-193.6514223-windows,解压资源
完美解决can't find bundle for base name messages.AndroidJpsBundle.locale zh_CN这个错误。 包含android-jps-plugin.jar和AndroidJpsBundle.properties,两个文件,其中jar包里也含有AndroidJpsBundle.properties
graphics.h图形库源码winBGIm(bug-free).rar,C++图形库,可用于基础图像显示
android-async-http-1.4.9版本存在一些bug,比如:在局域网络情况下无法访问服务器,这样就给开发本地测试的时候带来不便,所以可以用这个1.4.8版本来替代完成局域网联调测试的需求;下载下来压缩包直接解压就可使用...
bug-少儿编程scratch项目源代码文件案例素材.zip
商业源码-编程源码-Bug管理系统源码.zip
AndBug -- A Scriptable Android Debugger AndBug is a debugger targeting the Android platform's Dalvik virtual machine intended for reverse engineers and developers. It uses the same interfaces as ...
修复更新补丁后的组策略BUG-右键管理员运行,部分diy系统镜像精简后可能出现的组策略bug修复命令
ChkBugReport是一个用于分析android的bugreport的开源工具,它可以把你得到的bugreprot导出成适合阅读的html。导出的html文件包含了根据bugreport数据得出的图表和分析结论,主要包括进程内存占用信息、程序ANR或...
c++趣味编程------数独 无解释 可以自己改代码 无bug
The latest code has bug fixes, iOS 7's (and up) style segment control (which has nice fade animation and tint) and support for Font Awesome. (These features has not been pushed to Maven yet) Using ...
Writing+Bug-Free+C+Code 源码 Writing+Bug-Free+C+Code 源码
README This is my first Android Open Source project....The source is available at:http://github.com/beforemadness/Android---CSV-Contacts-Import ... So send any bug report to the above email.
Bug-报告的流程以及要素分析.zip程序开发文档软件开发文技术档下载Bug-报告的流程以及要素分析.zip程序开发文档软件开发文技术档下载Bug-报告的流程以及要素分析.zip程序开发文档软件开发文技术档下载Bug-报告的流程...
designer-bug-20120525,修正部分bug
----------------------------------- Android 编程基础 1 封面----------------------------------- Android 编程基础 2 开放手机联盟 --Open --Open --Open --Open Handset Handset Handset Handset Alliance ...
python库,解压后可用。 资源全名:bugbug-0.0.14-py3-none-any.whl
资源来自pypi官网。 资源全名:bugbug-0.0.14-py3-none-any.whl
一个不错得bug管理系统.功能虽然不是很强大,但是很实用,对于一般得项目都足够了,并且还可以自己改造用于其他得方面,如项目进度等 实用mysql,php编写.