- 浏览: 505650 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (200)
- java基础 (30)
- ajax (19)
- 乱写 (5)
- groovy (2)
- db (8)
- gwt (0)
- jee (2)
- 我关注的开源 (1)
- RIA AIR (1)
- spring (11)
- lucene (0)
- 工具 (10)
- 百科 (2)
- linux (6)
- android (40)
- 移动开发 (21)
- 代码片断 (15)
- tomcat (1)
- css (1)
- html5 (2)
- jquery (2)
- playframework (3)
- web (2)
- nio (3)
- design (1)
- nosql (3)
- 日志 (12)
- mysql (4)
- 图表 (1)
- python (3)
- ruby (1)
- git (0)
- hibernate (1)
- springboot (1)
- guava (1)
- mybatis (0)
- 工作问题 (3)
- php (1)
最新评论
-
linzm1990:
踩了很多坑啊。。。。
hibernate @Nofound 与@ManyToOne fetch lazy的问题 -
Ccccrrrrrr:
...
转: Spring boot 文件上传 -
rmzdb:
兄弟,你这个东西,在ie内核的浏览器,貌似不识别 文件名
工作问题:http下载文件,中文文件名在firefox下乱码问题 -
107x:
问题解决了,谢谢!
工作问题:http下载文件,中文文件名在firefox下乱码问题 -
klxqljq:
额鹅鹅鹅
android布局实现头尾固定, 中间多余内容可以滚动
Activity的生命周期
在一个Activity正常启动的过程中,他们被调用的顺序是 onCreate -> onStart -> onResume, 在Activity被干掉的时候顺序是onPause -> onStop -> onDestroy
如果突然来了电话, 则要中止. 如果中止的时候新出的一个Activity是全屏的那么:onPause->onStop ,恢复的时候onStart->onResume.
如果打断这个应用程序的是一个Theme为Translucent 或者Dialog 的Activity那么只是onPause ,恢复的时候onResume .
onCreate: 在这里创建界面 ,做一些数据 的初始化工作
onStart: 到这一步变成用户可见不可交互 的
onResume: 变成和用户可交互 的,(在activity 栈系统通过栈的方式管理这些个
Activity的最上面,运行完弹出栈,则回到上一个Activity)
onPause: 到这一步是可见但不可交互 的,系统会停止动画 等消耗CPU 的事情从上文的描述已经知道,应该在这里保存你的一些数据,因为这个时候 你的程序的优先级降低,有可能被系统收回。在这里保存的数据,应该在 onResume里读出来,注意:这个方法里做的事情时间要短,因为下一 个activity不会等到这个方法完成才启动
onstop: 变得不可见 ,被下一个activity覆盖了
onDestroy: 这是activity被干掉前最后一个被调用方法了,可能是外面类调用finish方 法或者是系统为了节省空间将它暂时性的干掉,可以用isFinishing()来判断它,如果你有一个Progress Dialog在线程中转动,请在onDestroy里 把他cancel掉,不然等线程结束的时候,调用Dialog的cancel方法会抛异常的。
onPause,onstop, onDestroy,三种状态 下 activity都有可能被系统干掉
为了保证程序的正确性,你要在onPause()里写上持久层操作的代码,将用户编辑的内容都保存到存储介质上(一般都是数据库 )。实际工作中因为生命周期的变化而带来的问题也很多,比如你的应用程序起了新的线程在跑,这时候中断了,你还要去维护那个线程,是暂停还是杀掉还是数据回滚,是吧?因为Activity可能被杀掉,所以线程中使用的变量和一些界面元素就千万要注意了,一般都是采用Android的消息机制 [Handler,Message]来处理多线程和界面交互的问题。
你后台的Activity被系统回收怎么办:onSaveInstanceState
当你的程序中某一个Activity A 在运行时中,主动或被动地运行另一个新的Activity B 这个时候A会执行
B 完成以后又会来找A, 这个时候就有两种情况,一种是A被回收,一种是没有被回收,被回收的A就要重新调用onCreate()方法,不同于直接启动的是这回onCreate()里是带上参数 savedInstanceState,没被收回的就还是onResume就好了。
savedInstanceState是一个Bundle对象,你基本上可以把他理解为系统帮你维护的一个Map对象。在onCreate()里你可能会用到它,如果正常启动onCreate就不会有它,所以用的时候要判断一下是否为空。
就像官方的Notepad教程里的情况,你正在编辑某一个note,突然被中断,那么就把这个note的id记住,再起来的时候就可以根据这个id去把那个note取出来,程序就完整一些。
handler机制的原理
andriod提供了 Handler 和 Looper 来满足线程间的通信。Handler 先进先出原则。Looper类用来管理特定线程内对象之间的消息交换(Message Exchange)。
什么是ANR 如何避免它?
答:ANR:Application Not Responding,五秒
在Android中,活动管理器和窗口管理器这两个系统服务负责监视应用程序的响应。当出现下列情况时,Android就会显示ANR对话框了:
因此,任何运行在主线程中的方法,都要尽可能的只做少量的工作。特别是活动生命周期中的重要方法如onCreate()和 onResume()等更应如此。潜在的比较耗时的操作,如访问网络和数据库;或者是开销很大的计算,比如改变位图的大小,需要在一个单独的子线程中完成 (或者是使用异步请求,如数据库操作)。但这并不意味着你的主线程需要进入阻塞状态已等待子线程结束 -- 也不需要调用Therad.wait()或者Thread.sleep()方法。取而代之的是,主线程为子线程提供一个句柄(Handler),让子线程在即将结束的时候调用它(xing:可以参看Snake的例子,这种方法与以前我们所接触的有所不同)。使用这种方法涉及你的应用程序,能够保证你的程序对输入保持良好的响应,从而避免因为输入事件超过5秒钟不被处理而产生的ANR。这种实践需要应用到所有显示用户界面的线程,因为他们都面临着同样的超时问题。
横竖屏切换时候activity的生命周期?
http://hi.baidu.com/wanlixingzhe/blog/item/df22fa4acaf304e883025c3e.html
http://www.limodev.cn/blog/ 致力于基于linux的嵌入式系统的学习和研究,包括内核、驱动、GUI、MMI、软件设计和优化等
http://hi.baidu.com/304580500/blog/item/39fd88debdf05e06495403c9.html Android的线程使用来更新UI----Thread、Handler、Looper、TimerTask
android 应用程序升级:
http://hi.baidu.com/304580500/blog/item/704b041ab12827c0ac6e752c.html
http://hi.baidu.com/304580500/blog/item/9a7e0206f80ddad87a894707.html
http://hi.baidu.com/luyanlong1/blog/item/5d56af393c3bbdd57c1e71cf.html
Android,UI主线程与子线程
http://hi.baidu.com/jackzjj/blog/item/cd0fda62a16b39cfe6113a5a.html
http://hi.baidu.com/455611934/blog/item/781f18a5085381e59052eebd.html
http://hi.baidu.com/455611934/blog/item/0e54193e297af3fe54e723b9.html
http://hi.baidu.com/455611934/blog/item/0c92a73c2da45912baa16785.html
深入理解Android消息处理系统——Looper、Handler、Thread
http://hi.baidu.com/dragon_eros/blog/item/6eaf600cb4e22f28e824881c.html
Android 核心分析
http://blog.csdn.net/maxleng/archive/2010/06.aspx
在一个Activity正常启动的过程中,他们被调用的顺序是 onCreate -> onStart -> onResume, 在Activity被干掉的时候顺序是onPause -> onStop -> onDestroy
如果突然来了电话, 则要中止. 如果中止的时候新出的一个Activity是全屏的那么:onPause->onStop ,恢复的时候onStart->onResume.
如果打断这个应用程序的是一个Theme为Translucent 或者Dialog 的Activity那么只是onPause ,恢复的时候onResume .
onCreate: 在这里创建界面 ,做一些数据 的初始化工作
onStart: 到这一步变成用户可见不可交互 的
onResume: 变成和用户可交互 的,(在activity 栈系统通过栈的方式管理这些个
Activity的最上面,运行完弹出栈,则回到上一个Activity)
onPause: 到这一步是可见但不可交互 的,系统会停止动画 等消耗CPU 的事情从上文的描述已经知道,应该在这里保存你的一些数据,因为这个时候 你的程序的优先级降低,有可能被系统收回。在这里保存的数据,应该在 onResume里读出来,注意:这个方法里做的事情时间要短,因为下一 个activity不会等到这个方法完成才启动
onstop: 变得不可见 ,被下一个activity覆盖了
onDestroy: 这是activity被干掉前最后一个被调用方法了,可能是外面类调用finish方 法或者是系统为了节省空间将它暂时性的干掉,可以用isFinishing()来判断它,如果你有一个Progress Dialog在线程中转动,请在onDestroy里 把他cancel掉,不然等线程结束的时候,调用Dialog的cancel方法会抛异常的。
onPause,onstop, onDestroy,三种状态 下 activity都有可能被系统干掉
为了保证程序的正确性,你要在onPause()里写上持久层操作的代码,将用户编辑的内容都保存到存储介质上(一般都是数据库 )。实际工作中因为生命周期的变化而带来的问题也很多,比如你的应用程序起了新的线程在跑,这时候中断了,你还要去维护那个线程,是暂停还是杀掉还是数据回滚,是吧?因为Activity可能被杀掉,所以线程中使用的变量和一些界面元素就千万要注意了,一般都是采用Android的消息机制 [Handler,Message]来处理多线程和界面交互的问题。
你后台的Activity被系统回收怎么办:onSaveInstanceState
当你的程序中某一个Activity A 在运行时中,主动或被动地运行另一个新的Activity B 这个时候A会执行
public void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); outState.putLong("id", 1234567890); }
B 完成以后又会来找A, 这个时候就有两种情况,一种是A被回收,一种是没有被回收,被回收的A就要重新调用onCreate()方法,不同于直接启动的是这回onCreate()里是带上参数 savedInstanceState,没被收回的就还是onResume就好了。
savedInstanceState是一个Bundle对象,你基本上可以把他理解为系统帮你维护的一个Map对象。在onCreate()里你可能会用到它,如果正常启动onCreate就不会有它,所以用的时候要判断一下是否为空。
if(savedInstanceState != null){ long id = savedInstanceState.getLong("id"); }
就像官方的Notepad教程里的情况,你正在编辑某一个note,突然被中断,那么就把这个note的id记住,再起来的时候就可以根据这个id去把那个note取出来,程序就完整一些。
handler机制的原理
andriod提供了 Handler 和 Looper 来满足线程间的通信。Handler 先进先出原则。Looper类用来管理特定线程内对象之间的消息交换(Message Exchange)。
- Looper: 一个线程可以产生一个Looper对象,由它来管理此线程里的Message Queue(消息队列)
- Handler: 你可以构造Handler对象来与Looper沟通,以便push新消息到Message Queue里;或者接收Looper从Message Queue取出)所送来的消息。
- Message Queue(消息队列):用来存放线程放入的消息。
- 线程:UI thread 通常就是main thread,而Android启动程序时会替它建立一个Message Queue。
什么是ANR 如何避免它?
答:ANR:Application Not Responding,五秒
在Android中,活动管理器和窗口管理器这两个系统服务负责监视应用程序的响应。当出现下列情况时,Android就会显示ANR对话框了:
- 对输入事件(如按键、触摸屏事件)的响应超过5秒
- 意向接受器(intentReceiver)超过10秒钟仍未执行完毕
- Android应用程序完全运行在一个独立的线程中(例如main)。这就意味着,任何在主线程中运行的,需要消耗大量时间的操作都会引发ANR。因为此时,你的应用程序已经没有机会去响应输入事件和意向广播(Intent broadcast)。
因此,任何运行在主线程中的方法,都要尽可能的只做少量的工作。特别是活动生命周期中的重要方法如onCreate()和 onResume()等更应如此。潜在的比较耗时的操作,如访问网络和数据库;或者是开销很大的计算,比如改变位图的大小,需要在一个单独的子线程中完成 (或者是使用异步请求,如数据库操作)。但这并不意味着你的主线程需要进入阻塞状态已等待子线程结束 -- 也不需要调用Therad.wait()或者Thread.sleep()方法。取而代之的是,主线程为子线程提供一个句柄(Handler),让子线程在即将结束的时候调用它(xing:可以参看Snake的例子,这种方法与以前我们所接触的有所不同)。使用这种方法涉及你的应用程序,能够保证你的程序对输入保持良好的响应,从而避免因为输入事件超过5秒钟不被处理而产生的ANR。这种实践需要应用到所有显示用户界面的线程,因为他们都面临着同样的超时问题。
横竖屏切换时候activity的生命周期?
- 不设置Activity的android:configChanges时,切屏会重新调用各个生命周期,切横屏时会执行一次,切竖屏时会执行两次
- 设置Activity的android:configChanges="orientation"时,切屏还是会重新调用各个生命周期,切横、竖屏时只会执行一次
- 设置Activity的android:configChanges="orientation|keyboardHidden"时,切屏不会重新调用各个生命周期,只会执行onConfigurationChanged方法
http://hi.baidu.com/wanlixingzhe/blog/item/df22fa4acaf304e883025c3e.html
http://www.limodev.cn/blog/ 致力于基于linux的嵌入式系统的学习和研究,包括内核、驱动、GUI、MMI、软件设计和优化等
http://hi.baidu.com/304580500/blog/item/39fd88debdf05e06495403c9.html Android的线程使用来更新UI----Thread、Handler、Looper、TimerTask
android 应用程序升级:
http://hi.baidu.com/304580500/blog/item/704b041ab12827c0ac6e752c.html
http://hi.baidu.com/304580500/blog/item/9a7e0206f80ddad87a894707.html
http://hi.baidu.com/luyanlong1/blog/item/5d56af393c3bbdd57c1e71cf.html
Android,UI主线程与子线程
http://hi.baidu.com/jackzjj/blog/item/cd0fda62a16b39cfe6113a5a.html
http://hi.baidu.com/455611934/blog/item/781f18a5085381e59052eebd.html
http://hi.baidu.com/455611934/blog/item/0e54193e297af3fe54e723b9.html
http://hi.baidu.com/455611934/blog/item/0c92a73c2da45912baa16785.html
深入理解Android消息处理系统——Looper、Handler、Thread
http://hi.baidu.com/dragon_eros/blog/item/6eaf600cb4e22f28e824881c.html
Android 核心分析
http://blog.csdn.net/maxleng/archive/2010/06.aspx
发表评论
-
android listview
2012-07-13 17:37 927ListView与Button的共存问题解决, 解决在list ... -
演化理解 Android 异步加载图片
2011-11-09 09:55 902LinearLayout 布局,其下放了5个ImageView ... -
android常用颜色
2011-11-07 08:49 1279常用颜色值: 可以完美的颜色比对的网站: http://w ... -
dialog,activity 屏蔽Home键详解
2011-11-03 09:39 0http://www.iteye.com/topic/1116 ... -
android SlidingDrawer example
2011-11-03 09:35 0http://disanji.net/2010/12/16/a ... -
play flash swf file in android with webview
2011-11-03 09:34 0http://androidforums.com/applic ... -
AnimationDrawable 在Dialog中不能动画的原因(转)
2011-11-03 09:33 1302原来在dialog的onCreate onStart调用的时候 ... -
Free Android UI library & component roundup
2011-11-03 09:27 1146http://java.dzone.com/articles/ ... -
Android Fundamentals: Scheduling Recurring Tasks
2011-11-03 09:26 982http://mobile.tutsplus.com/tuto ... -
Android ListView pull up to refresh 改造(转)
2011-11-03 09:25 2097转自: http://dengyin2000.iteye.co ... -
Android中dp和px之间进行转换
2011-11-03 09:02 2259在xml布局文件中,我们既可以设置px,也可以设置dp(或者d ... -
view的setTag() 和 getTag()应用
2011-10-31 12:19 29933View中的setTag(Onbect)表示给View添加一个 ... -
使用getIdentifier()获取资源Id
2011-10-31 12:15 8457使用getIdentifier()获取资源Id int i ... -
ListView的长按菜单___源码分析
2011-10-24 09:28 2591ListView的长按菜单___源码分析 Android的l ... -
让你的Android程序兼容多种分辨率
2011-10-24 09:20 1024http://www.android123.com.cn/an ... -
andr菜单
2011-10-24 09:18 1208Android 菜单 菜单分为两种:系统菜单和上下文菜单。 ... -
Android 长按显示上下文菜单代码
2011-10-24 09:14 5938Android 长按显示上下文 ... -
Android Asynchronous Http Client
2011-10-19 10:27 2906转自: loopj.com/android-async-htt ... -
Android canvas.drawBitmap实现透明效果
2011-09-02 14:22 23434以下是针对,canvas.drawBitmap方法实施透明效 ... -
android资源别名
2011-08-30 14:24 2320详细请参考: http://developer.android ...
相关推荐
精致排版,没有广告 大纲: 一、Java知识点汇总 二、Android知识点汇总 三、Android扩展知识点 四、Android开眼库源码分析 五、设计模式汇总 六、Gradle知识点汇总 七、常见面试算法题汇总
在“Android进阶知识点一”这个主题中,我们主要探讨的是Android应用开发的高级概念,特别是在使用Android Studio作为开发环境时遇到的各种技术和实践。这个知识判断器可能是一个小型的交互式应用,它根据用户的选择...
收集的Android核心知识点笔记,JAVA知识点汇总、Android知识点汇总、Android拓展知识点、Android开源库源码分析、设计模式汇总、Gradle知识点汇总、常见面试算法题汇总。Android
在Android开发领域,掌握一些常用知识点是至关重要的。以下是对标题“24个Android常用知识点精讲”中涉及的关键概念的详细阐述: 1. **Activity生命周期**:Activity是Android应用的基本组件,它负责用户界面。了解...
Android核心知识点笔记
### 学习Android所需Java知识点概述 为了更好地掌握Android开发技术,深入了解并熟练掌握Java语言是必不可少的基础之一。本文将根据“学习android需要的Java知识点列表”中的内容,详细阐述学习Android开发过程中...
文件是chm格式的,类似于Java的帮助文档,是我从开始接触Android,一点一滴总结Android的技术知识,总的来说是适合初学者来学习的,而且这个chm文档搜索功能相当强大,搜索某个关键词就可以搜索到对应的知识
在Android开发领域,掌握关键知识点是提升开发效率和产品质量的关键。以下是对标题“android开发知识点汇总”和描述中提到的一些重要技术点的详细解析: 1. **知识库.txt**: 这个文件可能包含了Android开发的基础...
在Android面试过程中,掌握核心知识点是至关重要的。以下是一些主要的Android面试题及相关的知识点,这些内容由大神精心整理,对准备Android面试的开发者非常有帮助。 1. **Android基础知识** - 应用程序组件:...
Android开发核心知识点笔记 涵盖了以下七大板块的知识点: 1、Java知识点汇总 2、Android知识点汇总 3、Android扩展知识点 4、Android开源库源码分析 5、设计模式汇总 6、Gradle知识点汇总 7、常见面试算法题汇总
android知识点思维导图
个人总结的一些android开发基础知识,希望对你有所帮助。
Android的知识点
学习Android所需的Java知识点列表
在Android开发领域,掌握核心知识点至关重要,这有助于开发者提高效率,避免不必要的问题。这份"Android核心知识.pdf"文档深入探讨了Android开发中的关键概念,包括Java基础知识,这对于Android程序员来说是必不可少...
Android 基本知识点总结 Android 作为一款流行的移动操作系统,拥有庞大的用户群体和开发者群体。了解 Android 的基本知识点对开发者来说至关重要。本文总结了 Android 的四大组件、Activity 生命周期、横竖屏切换...
android知识点题库
Android开发知识点详细介绍
9.22Android知识点