Android程序的入口点及深入生命周期及fragment的使用及viewpager

Android程序的入口点
------------------------------------

在AndroidManifest.xml中多个intent-filter属性,区分哪个是主入口:
http://zhidao.baidu.com/link?url=Y-DdRAoxfW8lREYhlaKie0UPlNfV9IJu27B24dEJBJtWNIg9rzcwPQRzZJPkgW3W6-exlZ-FZn_pnXov9uZ7jK  
http://blog.sina.com.cn/s/blog_6261f869010187wi.html  

http://blog.csdn.net/wh_19910525/article/details/7941617  

http://billyyuan.iteye.com/blog/1883866  

http://blog.csdn.net/jdsjlzx/article/details/8523546  



Application
-------------------------------------------------------
App的进程被创建的时候,Application的子类就会被实例化,onCreate方法就会被执行,给所有全局变量赋初期值。这样,所有的Activity就共同拥有这个类里面的变量了。Application这个包的onCreate才是真正的Android入口点
http://blog.csdn.net/renguichao/article/details/7667245 
http://www.cnblogs.com/renqingping/archive/2012/10/24/Application.html 
http://blog.csdn.net/yaya_soft/article/details/16943811 
调用Context的 getApplicationContext或者Activity的getApplication方法来获得一个application对象。

退出 App (Exit):
http://www.dewen.io/q/7636 


-------------------------------------------------------
任务与后退栈:Tasks and Back Stack;管理任务(开启一个activity是否要初始化多次等):Managing Tasks
http://developer.android.com/guide/components/tasks-and-back-stack.html  
http://blog.csdn.net/guolin_blog/article/details/41087993  
一个任务对应一个后退栈。一个应用可以存在多个task,当一个task调用另一个task(要开启另一个task中声明为 singleInstance的activity ),两个task的后退栈合并为一个back stack
在Intent中设置启动方式优先于在manifest中设置。

任务/后退栈的启动模式 包含了以下翻译:
Activity四种启动模式
---------------------------
http://www.cnblogs.com/meizixiong/archive/2013/07/03/3170591.html 
http://www.apkbus.com/forum.php?mod=viewthread&tid=78484 

Activity Intent跳转Flag详解
-----------------------------------
http://my.oschina.net/u/1244156/blog/228483  
FLAG_ACTIVITY_NEW_TASK同Launch mode设置成singleTask
FLAG_ACTIVITY_CLEAR_TOP是特有的
FLAG_ACTIVITY_SINGLE_TOP同Launch mode的singleTop

Activity的其他属性:
http://blog.csdn.net/lincyang/article/details/6893852  



activity生命周期
-----------------------------------

android onpostcreate()什么情况下执行:

当Activity彻底运行起来之后回调onPostCreate方法,从官方解释可以看出 "Called when activity start-up is complete (after onStart() and onRestoreInstanceState(Bundle) have been called)."

http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/1022/1824.html  

通用生命周期流程如下:

正常启动 onCreate onStart onPostCreate onResume onPostResume

转向下一个activity onPause onStop

从下一个activity返回当前(按机器返回键)onRestart onStart onResume onPostResume

转向上一个activity(按机器返回键)onPause onStop onDestory
屏幕待机(黑掉)onPause

屏幕变亮 onResume onPostResume

Home键退出 onPause onStop

Home键导航返回 onRestart onStart onResume onPostResume

旋转屏幕 onPause onStop onDestory onCreate onStart onPostCreate onResume onPostResume



onNewIntent()执行:
onNewIntent只有在以下场景才会回调: 当前通过Intent方式启动的Activity不是重新完整新建实例,而是复用之前已经存在的实例 (如被设置了singleTop启动模式,或FLAG_ACTIVITY_SINGLE_TOP intent flags或设置了Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP等,以此类推,被设置了singleTask或single。此时都会执行到onNewIntent)。onNewIntent调用后,将继续回调onRestart,onResume...
http://gundumw100.iteye.com/blog/2160467  
http://blog.csdn.net/lvxiangan/article/details/8591536  
http://blog.csdn.net/findsafety/article/details/9664061

onWindowFocusChanged方法:
当Activity的当前Window获得或失去焦点时会被回调此方法。当回调了这个方法时表示Activity是完全对用户可见的(只是可见,还一片黑呼呼的,有待draw..)。当对话框弹起/消失及Activity新创建及回退等都会调用此方法。
相比之下,onResume()方法更多的是指Activity进入了可见的状态,但只是状态,并不是真正的界面构建完成了。
也就是说 如果你想要做一个Activity一加载完毕,就触发什么的话 完全可以用这个。

onAttachedToWindow:
http://blog.csdn.net/eyu8874521/article/details/8493995  
http://blog.csdn.net/guxiao1201/article/details/41517871  


几个总结:
http://www.cnblogs.com/lwbqqyumidi/p/3776184.html  



fragment生命周期
---------------------------------
fragment基础:
注意,看使用的是v4包中的fragment还是普通的fragment,v4包中开启fragment的是通过调用supportFragmentManager,普通的是FragmentManager
http://www.cnblogs.com/xinye/archive/2012/08/28/2659712.html
http://blog.csdn.net/guolin_blog/article/details/8881711 
http://www.cnblogs.com/mengdd/archive/2013/01/08/2851368.html

fragment 是依附在activity上的, 必须要有activity才能启用,Fragment必须嵌入Activity中使用,需要 FragmentActivity 来载它。 Fragment的生命周期方法依赖于Activity的生命周期。
http://blog.csdn.net/forever_crying/article/details/8238863/ 
http://www.cnblogs.com/mengdd/archive/2013/01/08/2851368.html 
http://www.cnblogs.com/mybkn/articles/2455142.html 

setUserVisibleHint():
http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/1021/1813.html 
http://www.cnblogs.com/lee0oo0/p/3713391.html 

权限泄露的问题isValidFragment():
http://blog.csdn.net/l173864930/article/details/17279165 
http://www.2cto.com/Article/201401/270936.html 

fragment监听后退键:
http://stackoverflow.com/questions/22552958/handling-back-press-when-using-fragments-in-android    
http://stackoverflow.com/questions/22550420/how-to-handle-back-event-in-drawer-list-fragment-in-android-activity/22550460#22550460  
http://stackoverflow.com/questions/7992216/android-fragment-handle-back-button-press  
http://blog.csdn.net/guxiao1201/article/details/40507387  
http://vinsol.com/blog/2014/10/01/handling-back-button-press-inside-fragments/ 
http://blog.csdn.net/harvic880925/article/details/45013501    
http://www.cnblogs.com/LIANQQ/p/3662828.html  
http://developer.android.com/training/basics/fragments/communicating.html   


fragment中选择哪种adapter更合适:
FragmentPagerAdapter/FragmentStatePagerAdapter都是继承PagerAdapter
http://www.cnblogs.com/lianghui66/p/3607091.html  
http://blog.csdn.net/kaiwii/article/details/7823613  
http://blog.sina.com.cn/s/blog_783ede03010173b4.html  
http://blog.csdn.net/z13759561330/article/details/40737381  


复用存在的fragment:
http://www.yrom.net/blog/2013/03/10/fragment-switch-not-restart/  
http://blog.csdn.net/lmj623565791/article/details/37970961  


viewPager
-------------------------------
ViewPager预加载页数的问题setOffscreenPageLimit():
ViewPager默认预加载setOffscreenPageLimit(1);即当前页+-1(上一页,当前页,下一页)
setOffscreenPageLimit(0);不要预加载其他页,只加载当前页。
setOffscreenPageLimit(2);即当前页+-2
http://blog.csdn.net/ygc87/article/details/7428780 
http://blog.csdn.net/icyfox_bupt/article/details/18356461 
http://www.apkbus.com/android-160942-1-1.html 

按照想要的效果修改源码:
http://blog.csdn.net/jielundewode/article/details/41866577 


view
---------------------------------
view的onFinishInflate()何时调用的?
当View中所有的子控件均被映射成xml后触发;
MyView mv = (MyView)View.inflate (context,R.layout.my_view,null);
当加载完成xml后,就会执行那个方法;
我们一般使用View的流程是在onCreate中使用setContentView来设置要显示Layout文件或直接创建一个View,在当设置了ContentView之后系统会对这个View进行解析,然后回调当前视图View中的onFinishInflate方法。只有解析了这个View我们才能在这个View容器中获取到拥有Id的组件,同样因为系统解析完View之后才会调用onFinishInflate方法,所以我们自定义组件时可以onFinishInflate方法中获取指定子View的引用。

View.onVisibilityChanged方法,就是提供了一个状态模式的实现,允许在View的visibility发生改变时,引发执行onVisibilityChanged方法中的动作。
http://blog.csdn.net/a345017062/article/details/7904649 
viewGroup:
http://blog.csdn.net/tangxuankai/article/details/22282975 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值