android开发的activity启动模式

来源:互联网 发布:频谱测试仪软件 编辑:程序博客网 时间:2024/05/16 14:35
Activity启动模式


  可以根据实际的需求为Activity设置对应的启动模式,从而
可以避免大量重复的activity等问题




Activity有四种加载模式


1. standard


2. singleTop


3. singleTask


4. singleInstance




设置的位置在AndroidManifest.xml文件中activity元素
的android:launchmode="singleTask"






注意:默认情况下,是standard模式


setTitle("title是可以设置的哦");










1.standard启动模式
  每次激活Activity时都会创建新的activity的实例,并且放在栈中
  栈(就是后进先出)


2.singleTop启动模式
  可以有多个实例,但是不允许此Activity的多个实例
  叠加。既,如果此Activity有实例在栈顶的时候,启动这个Activity
  ,不会创建新的实例,而会调用其onNewIntent方法
  如果不在栈顶则创建新的实例
 
 从写onNewIntent(Intent intent){}


@Override
protected void onNewIntent(Intent intent){
   super.onNewIntent();
   //这里其实不需要我们做什么,只是说明,singleTop
   //模式会在此调用此方法,而不是去创建新的实例
   //只有当栈顶为空的时候,才会创建activity的实例
}










3. singleTask 启动模式
   只能有一个实例,在同一个应用程序中启动他的时候,
   若不存在Activity实例
   ,则会在当前栈创建创建一个新的实例,若存在
   则会把栈中在其之上的activity实例销毁掉,
   并且调用此实例的onNewIntent(),如果是在别的
   应用中启动它,则会新建一个栈,并在该栈中创建
   activity实例
   
   使用隐式意图打开其他软件,只要知道
   action,category就可以了






4. singleInstance启动模式
   只能有一个实例,并且这个实例独立运行在一个activity任务栈中
   ,这个task只有这个实例,不允许有别的activity存在
   
    也就是说,这个activity打开时,开辟一个空间(栈)
    并且,只允许自己在这个栈中

0 0
原创粉丝点击