活动的生命周期(五)活动的启动模式

摘要:
活动的启动模式对我们来说是一个新概念。在实际项目中,我们将根据活动的需要为每个活动指定适当的启动模式。标准在这种模式下,每当启动一个新活动时,它都会被推到堆栈的顶部,而不管它在次要操作之前是否已经在堆栈中,这是对资源的浪费。

       活动的启动模式对我们来说是个新的概念,在实际项目中我们会根据活动的需求为每个活动指定恰当的启动模式。共分为四种分别是:standard,singletop,singletast,singleinstance,可以在androidMainfest.xml中进得指定,android:launchModel属性来选择启动查式。

       Standard(标准):从字面就可能看得出这个是标新准的启动模式,在不进行显示指定的情况下,都是这种模式。在这个模式下每当启动一个新的活动时,它就会压入栈的顶部,而不去管这个少动之前是否已经在栈中,有点浪费资源。

       SingleTop:在有些情况下用“标准模式”不太合适。活动已经在栈中了,为何还要再启动一个新的,直接更改它在栈中的位置即可。于是就有了singleTop,这个模式也和上面差不多,只是多了一个判断,判断活动是否在栈的顶部,如果存在,就不再创建新的。反之如果不再栈的顶部,那还是后启用一个新的活动。

       SingleTast:这个是为弥补singletop而来的,如果活动不在栈的顶部,但是存在栈中,就直接将位置移动到栈的顶部。

       SingleInstance这个最为复杂,指定为这个模式会启用一个新的栈来管理这个活动,假设我们有一个活动允许其他程序调用,共享数据,这种方式无疑是最好的。

       活动的启动的最佳写法,我们可以通过intent来构建出当前的“意图”,然后来调用startActivity()或startActivityForResult()方法将活动启动起来,我们可以用下面的方式来写:

      pubilc static void actionStart(Context context,String data1,String data2)

         {

           Intent intent=new Intent(context,SecondActivity.cass);

                     intent.putExtra("param1",data1);

                     intent.putExtra("param1",data2);

                     context.startActivity(intent);

         }

      这个方法完成Intent的构建,另外所有的SecondActivity中需要的数据都是通过actionStart来进行传递的,这样的好处就是灵活性增高了,启动代码也可以简写了成:  

     SecondActivity.actonStart(FiresActivity.this,"data1","data2");

            

      

     

免责声明:文章转载自《活动的生命周期(五)活动的启动模式》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇【批量】多条件批量查询语句【转】java异常报错大全下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Android学习——隐式Activity

使用隐式的Intent 含蓄,不指名道姓,不会指明那个Activity必须被哪个Activity所启动。 一个Activity2如何被另一个Activity1所启动,关键取决于AndroidManifest.xml中对于Activity2定义的两个标签的信息,分别是action和category。 1 <activity android:name="...

Android之NFC

来源:http://blog.csdn.net/bear_huangzhen/article/details/46333421 NFC简介: Near Field Communication 近场通信,是一种数据传输技术。 与wifi、蓝牙、红外线等数据传输技术的一个主要差异就是有效距离一般不能超过4cm。 NFC支持3种工作模式: 1.读卡器模式; 2....

使用Intent实现Activity的显式跳转

【正文】 这里以按钮实现活动跳转为例,为实现这个功能,我们需要三个步骤: 1.点击按钮才发生页面跳转,因此,第一步我们先要找到要点击的按钮 如何拿到按钮对象呢?通过资源id,前面我们提到过,在R.id.xxx 中会有我们的资源id,但button按钮是在layout 中创建的,系统不会为其创建资源id,所以我们需要在layout 设置 button 时自己...

Kotlin实践记录

kotlin中is来判断一个对象与指定的类型是否一致: var a: Any = "a" if(a is String) { println("a是String类型") } if (a !is Int) { println("a不是Int类型") } Kotlin相等判断: equals()或 ==:判断两个结构是否相等 var a = "...

Android开发高级进阶——多进程间通信

一. 什么是多进程? 多进程就是多个进程的意思,那么什么是进程呢? 当一个应用在开始运行时,系统会为它创建一个进程,一个应用默认只有一个进程,这个进程(主进程)的名称就是应用的包名。 进程的特点: 进程是系统资源和分配的基本单位,而线程是调度的基本单位。 每个进程都有自己独立的资源和内存空间 其它进程不能任意访问当前进程的内存和资源 系统给每个进程分...

AlarmManager

AlarmManager 主要管理硬件时钟。 一些与时间相关的应用,如日历,闹钟等需要使用Alarm Manager的服务。Alarm manager功能相对比较简单,相关代码位于frameworks/base/core/jni/server/com_android_server_AlarmManagerService.cppframeworks/base...