Activity的四种加载模式 -- singleTask 和 singleInstance模式

Activity的启动模式可以通过AndroidManifest.xml文件中的元素的属性来指定,一共有4中模式:

  <activity android:name="ActivityMain" android:launchMode="singleTask">activity>
    • standard
    • singleTop
    • singleTask
    • singleInstance 

     这4中模式又分两类,standard和signleTop属于一类, singleTask和signleInstance属于另一类。

 

    standard和singleTop属性的 Activity 的实例可以属于任何任务(Task),并且可以位于Activity堆栈的任何位置。比较典型的一种情况是,一个任务的代码执行startActivity(),如果传递的 Intent 对象没有包含 FLAG_ACTIVITY_NEW_TASK 属性, 指定的 Activity 将被该任务调用,从而装入该任务的Activity 堆栈中。 standard和singleTop的区别在于:standard模式的Activity在被调用时会创建一个新的实例,所有实例处理同一个Intent对象; 但对于singleTop模式的Activity,如果被调用的任务已经有一个这样的Activity 在堆栈的顶端,那么不会有新的实例创建, 任务会使用当前顶端的Activity实例来处理Intent对象,换句话说,如果被调用的任务包含一个不在堆栈顶端的 singleTop Activity, 或者堆栈顶端为 singleTop 的Activity的任务不是当前被调用的任务,那么,仍然会有一个新的Activity对象被创建。

 

    singleTask 和 singleInstance模式的Activity 仅可用于启动任务的情况, 这种模式的Activity总是处在Activity堆栈的最底端,并且一个任务中只能被实例化一次。两者的区别在于:对于 singleInstance模式的Activity, 任务的Activity堆栈中如果有这样的Activity,那它将是堆栈中的唯一的 Activity, 当前任务收到的 Intent 都由它处理, 由它开启的其他 Activity 将在其他任务中被启动; 对于 SingleTask模式的Activity,它在堆栈底端,其上方可以有其他Activity被创建, 但是,如果发给该Activity的Intent对象到来时该Activity不在堆栈顶端,那么该Intent对象将被丢弃,但是界面还是会切换到当前的Activity。

http://www.cnblogs.com/hibraincol/archive/2011/04/11/2012719.html

 

以下为个人测试时所需要的功能实现的总结 by laoyang1018:

参考QQ同步助手 QQpim


<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="belson.android.uECG"
      android:versionCode="1"
      android:versionName="1.0">
   

    
        <activity android:name=".splashScreen"  
      android:label="@string/app_name"
      android:launchMode="singleTop"
                  android:screenOrientation="landscape"
                  android:configChanges="keyboardHidden|orientation"
                  android:theme="@android:style/Theme.NoTitleBar.Fullscreen">
                  
                  
                  
            
                
                
            
        
        <activity android:name=".uECGActivity"
           android:launchMode="singleTask"
                  android:screenOrientation="landscape"
                  android:configChanges="keyboardHidden|orientation"
      android:theme="@android:style/Theme.NoTitleBar.Fullscreen"> 
       
      
      
      
        
        
          
     
     
     
  

    
    
    
 
 
 
 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值