Activity的四种加载模式(3)

来源:未知 责任编辑:责任编辑 发表时间:2014-02-18 03:21 点击:

        super.onNewIntent(intent);   
    }   
       
    //点击进入加载Activity1   
    @Override  
    public boolean onTouchEvent(MotionEvent event) {   
        Intent intent = new Intent(this, Activity1.class);   
        startActivity(intent);   
        return super.onTouchEvent(event);   
    }   
}  
 
 
 
同样,我们启动程序,开启Activity1,然后点击Acitivity1,启动另一个Activity1,然后再点击,再点击,再点击... 之后我们点返回键。
    结果,Activity1第一次创建时,显示一个Toast提示,onCreate被调用,当再次点击时,onCreate没有被调用相反是进入了onNewIntent函数。当按返回键时,直接退出了该应用,可见,堆栈中只存在一个Acitivity1。
    可见,当activity被设置为singleTop的加载模式时,如果堆栈的顶部已经存在了该Activity,那么,它便不会重新创建,而是调用onNewIntent。如果,该Activity存在,但不是在顶部,那么该Activity依然要重新创建,请读者自行验证。
    因此singleTop模式的思想便是“拒绝堆叠”!
    以上说的两种加载模式,Activity均可以实例化多次,而下面讲的两个加载模式就只可以实例化一次。
    “独立门户”——singleTask模式
    我们首先测试一下,在本应用内调用singleTask模式的Activity会出现什么情况。
    我们写两个Activity(Activity1和Activity2),相互调用,其中Activity1为singleTask模式。AndroidManifest.xml如下:
 
Java代码
<application android:icon="@drawable/icon" android:label="@string/app_name">  
    <activity android:name=".Activity1"  
              android:launchMode="singleTask"  
              android:label="@string/app_name">  
    </activity>  
    <activity android:name=".Activity2">  
        <intent-filter>  
            <action android:name="android.intent.action.MAIN" />  
            <category android:name="android.intent.category.LAUNCHER" />  
        </intent-filter>  
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:点击我更换图片
最新评论 更多>>

推荐热点

  • Android 完全退出程序
  • 原创:Android应用开发-Andorid歌词秀,含源码
  • android 屏幕保护
  • Android手机软件汉化教程---第四课 dex文件汉化
  • 众多Android 开源项目推荐,给力工作给力学习
  • Android Audio代码分析4
  • Android得到已安装的应用程序信息!
  • Android开发者指南(29) —— USB Host and Accessory
  • Android成长的幕后推手:工程师鲁宾
网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
Copyright © 2008-2015 计算机技术学习交流网. 版权所有

豫ICP备11007008号-1