Task:Task是存放activity的栈(后进先出)。
TaskDemo:
activity1 -> activity2 ->activity3 ->SMSActivity
1、activity1对象压入栈内
2、activity2压入栈中,在activity2上面(栈的顶部)。手机显示的永远是栈顶的内容。
3、activity3启动后压入栈中。
4、SMSActivity入栈,此时四个栈都在栈内。
能否被kill(手机资源有限)
5、点击back返回按钮。此时SMSActivity对象从栈中弹出,此时activity3位于栈的顶部。
6、再点击back,activity3被弹出。
再点击back,activity2被弹出,activity1位于顶端。讲显示activity1显示出来。
Task的价值,可以把不同程序的activity组织在一起。
同一个Task的activity被组织成一个单元,提高用户体验。
finish():
在activity2中的startActivity(intent);后加入一句代码finish();//此时来到activity3点击back不会回到activity2,只会回到activity1。因为activity2 被销毁掉,此时栈内没有activity2。所以不会回到activity2。
栈只有弹出和压入两个动作,不能排序。
***************************
第二个程序:
窗口风格的activity(放入进度条,窗口按钮,等等。)
在Mainifest中该activity加入一个属性
android:theme="@android:style/Theme.Dialog"
http://blog.csdn.net/hongya1109110121/article/details/11985545
看帮助文档Reference
开启的第二个activity,当没有完全遮挡第一个activity时就不会调用第一个activity的onStop()方法。
点back,则调用第二个activity的onPause()方法,调用第一个activity的onResume()方法重新获得焦点。
***************************一个activity能否被kill(手机资源有限)
手机资源不够用时。当一个程序调用onPause();onStop();onDestory();时,一个activity就能被杀掉。