activity启动模式

Android面试题

混江龙づ霸主 提交于 2020-03-05 06:12:50
一些常见的Android面试基础题做下总结,看看你能做出多少道? 1. Intent的几种有关Activity启动的方式有哪些,你了解每个含义吗? 这里Android123提示大家,Intent的一些标记有FLAG_ACTIVITY_BROUGHT_TO_FRONT 、FLAG_ACTIVITY_CLEAR_TOP、FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET、FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS、FLAG_ACTIVITY_MULTIPLE_TASK和FLAG_ACTIVITY_NEW_TASK 等。每种含义大家看SDK文档和具体跑下这样你的记忆会更深刻些。 2. Activity和Task的启动模式有哪些? 每种含义是什么? 有关在AndroidManifest.xml中的android:launchMode定义,主要有standard、singleTop、singleTask和singleInstance,同时对于android:taskAffinity这些问题大家也要了解,Android开发网在以前的文章中讲过,不过很多开发者仍然不是很清楚,这些基础问题我们以后仍然会再次总结。 关于Activity的启动模式,参考: http://blog.csdn.net/feng88724/archive/2011/05/11

Android启动模式

删除回忆录丶 提交于 2020-03-02 19:36:59
github地址: https://github.com/xiaoliang0227/android_launchMode_demo Android有四种启动模式,分别为standard、singleTop、singleInstance、singleTask。设置启动模式可以在AndroidManifest.xml中设置Activity的launchMode属性,Activity的默认启动模式为standard。所以,如果想设置Activity为standard模式可以不用给launchMode设置属性值。 下面分别介绍下四种启动模式 standard 模式: standard模式为Activity的默认启动模式,该模式下所有启动的Activity都在同一个task容器栈中,只要每次调用startActivity等相关方法都会创建一个Activity的实例,所以同一个task容器栈中可能存在着相同的Activity实例。 singleTop 模式: 设置Activity的启动模式为singleTop可以通过配置AndroidManifest.xml文件中的Activity的launchMode属性值来实现。 如字面意思,task 容器栈顶保持一个Activity的实例,如果某个Activity已经处于task容器栈顶

android task and activity

烈酒焚心 提交于 2020-03-02 08:22:27
a usful blog. http://changeyouforever.iteye.com/blog/1160038 android:allowTaskReparenting 用来标记Activity能否从启动的Task移动到有着affinity的Task(当这个Task进入到前台时)——“true”,表示能移动,“false”,表示它必须呆在启动时呆在的那个Task里。 如果这个特性没有被设定,设定到<application>元素上的allowTaskReparenting特性的值会应用到Activity上。默认值为“false”。 一般来说,当Activity启动后,它就与启动它的Task关联,并且在那里耗尽它的整个生命周期。当当前的Task不再显示时,你可以使用这个特性来 强制Activity移动到有着affinity的Task中。典型用法是:把一个应用程序的Activity移到另一个应用程序的主Task中。 例如,如果e-mail中包含一个web页的链接,点击它就会启动一个Activity来显示这个页面。这个Activity是由Browser应用程序 定义的,但是,现在它作为e-mail Task的一部分。如果它重新宿主到Browser Task里,当Browser下一次进入到前台时,它就能被看见,并且,当e-mail Task再次进入前台时,就看不到它了。

Android开发之Activity的创建跳转及传值

假如想象 提交于 2020-02-18 21:12:27
写在前面; 在Android系统的江湖中有四大组件:活动(Activity), 服务(Service), 广播接收器(Broadcast Reciver)和内容提供者(Content Provider)。今天所介绍的就是Android开发中的四大组件之一:Activity,其他那三大组件以后再进行介绍。说道Android中的Activity,如果你做过iOS开发的话,Activity类似于iOS中的ViewController(视图控制器)。在应用中能看到的东西都是放在活动中的。活动是安卓开发比较重要的东西,是用户交互和数据的入口。本篇博客要介绍的内容是活动的创建,活动的跳转与值的透传。 iOS中的ViewController也是有自己的生命周期的,了解Activity或者ViewController的生命周期是很有必要的,这要你才能搞明白在什么时间做什么事情。好废话少说,Activity将要登场。 使用Android Studio创建一个Android的Add New Activity工程(步骤略,详见上篇博客),在这个工程中默认会有一个Blank Activity,而且在Blank Activity中自动添加了一个Text View, 上面写着"Hello World", 运行这个工程就会看到Hello World在一个白色的活动中。

Android阶段性学习总结_2_Activity的生命周期、跳转方式及参数传递、启动模式。

馋奶兔 提交于 2020-02-01 22:35:49
Activity的生命周期: onCreat ,onStart,onResume,onPause,onRestart,onStop,onDestroy Activity之间的跳转分为显式跳转和隐式跳转。 隐式跳转: Intent intent=new Intent(); intent.setAction("android.intent.action.BAcivity"); startActivity(intent); 显式跳转: Intent intent=new Intent(AActivity.class,BActivity.class); //intent.setClass(class,class) //intent.setClassName(class,"class url"); 参数传递: Bundle bundle=new Bundle(); bundle.putString("string","---hahaha---"); intent.putExtras(bundle); startActivity(intent); 需回传参数的参数传递: AActivity: Intent intent=new Intent(Activity.this,BActivity.class); Bundle bundle=new Bundle(); bundle.put__(tag

AndroidManifest.xml详解

烂漫一生 提交于 2020-02-01 18:09:20
我们在进行APP开发的时候都会遇到一个文件:AndroidManifest.xml。从刚开始进行Android开发,到现在已经过去了几个月,还是对这个文件一知半解,只知道它是配置用的。但是这文件里的东西具体有什么用,该怎么用一直都没有理解。借着做项目的机会,仔细研究一下这个文件。 研究AndroidManifest.xml最好的方式自然就是对照着官方文档详细理解项目中每个字段的作用,并且做出一些修改来验证。 AndroidManifest是什么? AndroidManifest官方解释是应用清单(manifest意思是货单),每个应用的根目录中都必须包含一个,并且文件名必须一模一样。这个文件中包含了APP的配置信息,系统需要根据里面的内容运行APP的代码,显示界面。 AndroidManifest的作用是什么? 上述的功能是非常笼统的解释,具体到细节就是: 为应用的 Java 软件包命名。软件包名称充当应用的唯一标识符。 描述应用的各个组件,包括构成应用的 Activity、服务、广播接收器和内容提供程序。它还为实现每个组件的类命名并发布其功能,例如它们可以处理的 Intent 消息。这些声明向 Android 系统告知有关组件以及可以启动这些组件的条件的信息。 确定托管应用组件的进程。 声明应用必须具备哪些权限才能访问 API 中受保护的部分并与其他应用交互

Android 插件化原理及实践

不问归期 提交于 2020-02-01 08:46:14
概述 插件化是一个非常大的话题,他包含很多的知识点,我们今天简单的学习一下他的原理,并且从零开始实现插件化,这里主要用到了 Hook技术 关联文章 Android APK资源加载流程 Android 中的ClassLoader Android App启动过程 Android 热修复原理实战 设计模式 – 代理模式 插件化需要解决的问题和技术 Hook技术 插件的类加载 插件的资源加载 启动插件Activity Hook技术 如果我们自己创建代理对象,然后把原始对象替换为我们的代理对象(劫持原始对象),那么就可以在这个代理对象为所欲为了,修改参数,替换返回值,我们称之为 Hook 。 我们可用用 Hook 技术来劫持原始对象,被劫持的对象叫做 Hook 点,什么样的对象比较容易 Hook 呢?当然是 单例和静态对象 ,在一个进程内单例和静态对象不容易发生改变,用代理对象来替代 Hook 点,这样我们就可以在代理对象中实现自己想做的事情,我们这里 Hook 常用的 startActivity 方法来举例 对于 startActivity 过程有两种方式: Context.startActivity 和 Activity.startActivity 。这里暂不分析其中的区别,以 Activity.startActivity 为例说明整个过程的调用栈。 Activity 中的

Android Intent用法总结

时光总嘲笑我的痴心妄想 提交于 2020-01-31 00:46:05
Android中提供了Intent机制来协助应用间的交互与通讯,Intent负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将 Intent传递给调用的组件,并完成组件的调用。Intent不仅可用于应用程序之间,也可用于应用程序内部的 Activity / Service之间的交互。因此,Intent在这里起着一个媒体中介的作用,专门提供组件互相调用的相关信息,实现调用者与被调用者之间的解耦。 1. Intent作用 Intent是一个将要执行的动作的抽象的描述,一般来说是作为参数来使用,由 Intent来协助完成 Android各个组件之间的通讯。比如说调用startActivity()来启动一个Activity,或者由broadcaseIntent()来传递给所有感兴趣的BroadcaseReceiver,再或者由startService() / bindservice()来启动一个后台的 service。所以可以看出来,Intent 主要是用来启动其他的 activity 或者 service,所以可以将 intent 理解成 activity 之间的粘合剂。 Intent作用的表现形式为: 启动Activity 通过Context.startActvity() / Activity

Activity的启动模式全解standard,singleTop,singleTask,singleInstance

生来就可爱ヽ(ⅴ<●) 提交于 2020-01-30 09:23:49
在android中控制Activity的启动模式的属性主要控制两大功能: 1,控制activity 进入哪一个任务task 中, 有两种可能,进入启动task中,进入指定taskAffinity的task中,如果指定taskAffinity的task还不存在,则创建一个 2,控制activity 多次启动的处理模式, 有三种可能,每次都创建新的,如果在顶部不创建新的, 如果存在则清除之上所有的activity activity的taskAffinity属性值默认为application的taskAffinity属性值,application的taskAffinity属性值默认为包名 手动设置taskAffinity属性值时,可以设置任意字符串但是必须包含至少一个'.'点符号,否则apk会在安装时解析包错误 Activity的启动模式中多次启动的处理模式要先确定activity进入的task activity 的launchMode 静态设置时有四种模式,动态设置(intent flag)时常用的有三种 ,其中让taskAffinity属性起作用的有两种模式 singleTask , FLAG_ACTIVITY_NEW_TASK ,其他launchMode启动模式taskAffinity属性无效 launchMode standard 进入启动task

介绍activity文档翻译

♀尐吖头ヾ 提交于 2020-01-28 08:53:39
原文链接: https://developer.android.google.cn/guide/components/activities/intro-activitiesSS 一, 对activit的介绍 activity类是很重要的组件在安卓app中,并且activit被启动的方式和组合方式是平台应用模型的基本部分。 不同于其他编程模式,启动需要一个main方法,安卓系统在activity实例中启动代码通过调用生命周期中的特定方法。 这个文档介绍了activity的概念,并且提供了一些指导,关于如何去用他们。 关于一些额外的信息如何过呢更好的构建你的app,可以看Guide to app architecture 二,activity的概念 移动app体验不同于桌面程序,移动app和用户交互的接口不止一个。不一定在什么地方,什么时间启动。 例如,如果你从主屏幕打开一个email app,你也许会看到一个email是列表。通过对比, 如果你使用一个社交媒体app打开你的emailapp ,你可能直接看到email app的屏幕去写一封电子邮件。 activity类被设计为更适合这种模式。当一个app调用另一个app时,app调用的是另一个app的activity, 而不是调用另一个app作为一个整体。在这种方式下,activity作为app的交互点和其他用户