activity启动模式

Android - Android 面试题集 -- Android 部分答案

萝らか妹 提交于 2020-01-24 05:19:22
2.1 Activity 1.Activity是什么? Activity是Android的四大组件之一。是用户操作的可视化界面;它为用户提供了一个完成操作指令的窗口。 当我们创建完毕Activity之后,需要调用setContentView()方法来完成界面的显示;以此来为用户提供交互的入口。 2.典型情况下的Activity生命周期? Activity启动–>onCreate()–>onStart()–>onResume() 点击home键回到桌面–>onPause()–>onStop() 再次回到原Activity时–>onRestart()–>onStart()–>onResume() 退出当前Activity时–>onPause()–>onStop()–>onDestroy() 3.异常情况下的Activity的生命周期 & 数据如何保存和恢复? 在onStop之前调用onSaveInstanceState保存当前Activity状态,当Activity被重新创建后,系统调用 onRestoreInstanceState,并且把Activity销毁时onSaveInstanceState方法所保存的Bundle对象 作为参数传递给onRestoreInstanceState和onCreate方法 onRestoreInstanceState的调用时机发生在onStart之后

Android开发之旅:活动与任务

旧时模样 提交于 2020-01-24 05:18:20
——坚持就是胜利!关键是你能坚持吗?不能的话,你注定是个失败者。 引言 关于Android应用程序原理及术语,前面两篇: Android开发之旅:应用程序基础及组件 Android开发之旅:应用程序基础及组件(续) 介绍了Android应用程序的进程运行方式:每一个应用程序运行在它自己的Linux进程中。当应用程序中的任何代码需要执行时,Android将启动进程;当它不在需要且系统资源被其他应用程序请求时,Android将关闭进程。而且我们还知道了Android应用程序不像别的应用程序那样(有Main函数入口点),它没有单一的程序入口点,但是它必须要有四个组件中的一个或几个:活动(Activities) 、服务(Services) 、广播接收者(Broadcast receivers) 、内容提供者(Content providers)。且分别介绍它们的作用,及如何激活和关闭它们、如何在清单文件(AndroidManifest.xml)中声明它们及Intent过滤器。 在简单回顾之后,本篇还是继续介绍Android应用程序原理及术语——活动与任务(Activities and Tasks)。 1、活动与任务概述 2、亲和度和新任务(Affinities and new tasks) 3、启动模式(Launch modes) 4、清除栈(Clearing the stack) 5

Android 代码优化点滴

天大地大妈咪最大 提交于 2020-01-23 02:13:01
MVC 模型:Mode,View,Controller与view相关的类:DragLayer (自定义的帧布局DragLayer 包含hotseat ,workspace ,和DragController , DragListener 等一起使得桌面上的shortcut具备拖动功能,和DropTarget一起具备删除功能 桌面拖动,删除的处理:将workspace 和DragLayer通过一些接口:DropTarget, DragSource, DragScroller配套完成,DragLayer 和DragController 操纵以上接口类,在workspace 去实现具体)àworkspace(自定义的类似pageview,自己可以snapToPage,即可在不同的cellLayout之间切换,同时实现拖动,触摸等接口,做具体的动作)à cellLayout(默认一个workspace 包含两个cellLayout,可以增加,删除 )à ShortcutAndWidgetContainer(在cellLayout 中,真正是它来确定桌面上的Shortcut 的位置,大小等)à (ShortcutInfo,FolderInfo) 与Mode 相关的类:LauncherProvider 提供和数据库直接操作相关的接口,LauncherModel 非UI线程(后台线程

Android Launcher 详解

扶醉桌前 提交于 2020-01-22 08:17:24
(1) Launcher的定义:Android系统启动后,加载的第一个程序,是其他应用程序的入口。 (2) Launcher的构成:HomeScreen(1.workspace(AppWidget,Wallpaper,Livefolder,ShortCut),2.HotSeats,3.AllApps/allApplist:GridView) (3) 针对Launcher的开发类型: 1. 开发自定义的Launcher 2. 与Workspace相关的开发(AppWidget,Wallpaper,Livefolder,ShortCut) (4) 解读Launcher源代码(以ShortCut为例),Launcher为系统级应用,位于Applications层。源代码位于MyAndroid\packages\apps\Launcher2中,可讲它导入eclipse中。 (5) 看Manifest文件可知,Launcher的主Activity为:com.android.launcher2.Launcher。下面是它的部分配置信息: <activity android:name="com.android.launcher2.Launcher" android:launchMode="singleTask"> <intent-filter> <action android:name=

开发艺术之旅 | Activity 生命周期和启动模式

社会主义新天地 提交于 2020-01-20 14:18:06
开发艺术之旅 | Activity使用详解 生命周期 几种情况 成对的生命周期 onStart和onResume、onPause 和 onStop 的区别 异常情况下生命周期分析 情况一:资源相关的系统配置发生改变 情况二:资源内存不足导致低优先级的Activity被杀死 如何在系统配置改变时不重新创建Activity? 常用标签: 需要注意的标签: Activity的启动模式 standard singleTop singleTask singleInstance Activity的Flag 隐式启动Activity(IntentFilter) 生命周期 生命周期 状态 工作 onCreate Activity正在被创建 可以做一些初始化工作 onRestart Activity从不可见重新变成可见 onStart Activity正在被启动,“可见”但不在前台 onResume Activity可见并且出现在前台,可交互 onPause Activity正在停止,接下来一般会调用onStop 存储工作、停止动画,非耗时操作 onStop Activity即将停止 稍微重量级的回收操作,不能太耗时 onDestroy 即将被销毁 回收对象,释放资源 几种情况 打开新的Activity或者回到桌面 onPause -> onStop 回到原Activity onRestart ->

Android 任务栈与启动模式

无人久伴 提交于 2020-01-18 02:27:10
任务栈 android任务栈又称为task,它是一个栈结构,具有先进后出的特性,用于存放我们的Activity组件 只有在栈顶的Activity才能与用户进行交互 我们退出程序时只有把任务栈中所有的Activity移除栈,任务栈才会被销毁,任务栈也可以移动到前台,并且保留了每一个Activity的状态,可以有序的给用户列出他们的任务,同时也不会丢失Activity的状态信息 一个App中可能不止一个任务栈,一个task的Activity可以来自不同的app,同一个app的Activity也可能不在一个task中 taskAffinity属性 taskAffinity为Activity的任务栈的名称,默认任务栈的名称为包名,并且必须包含. 一般与singleTask、allowTaskReparenting相结合 默认情况时 包名:com . wxx . lis1 < activity android : name = ".MainActivity" android : configChanges = "orientation|keyboardHidden|screenSize" > < intent - filter > < action android : name = "android.intent.action.MAIN" / > < category android :

安卓开发艺术探索一——Activity的生命周期和启动模式

人走茶凉 提交于 2020-01-16 13:24:49
文章目录 Activity的生命周期和启动模式 Activity的生命周期 正常情况下的生命周期 异常情况下的生命周期 1.系统配置改变导致活动被杀死并重新创建 2.资源内存不足导致低优先级的Activity被杀死 Activity的启动模式 启动模式的设置 IntentFilter的匹配规则 1.action的匹配规则 2.category的匹配规则 3.data的匹配规则 参考资料 Activity的生命周期和启动模式 Activity的生命周期 正常情况下的生命周期 onCreate:活动正在被创建。在此方法内可以做一些初始化工作 onReStart:活动正在重新启动。用户从其他活动回到当前活动时就会调用此方法。 onStart:活动正在被启动。此时活动已经可见,但未出现在前台,无法和用户交互 onResume:活动已经可见,并开始活动。(和onStart对比:两者都表示活动已经可见,onStart时活动还在后台,onResume时活动显示在前台) onPause:活动正在停止,正常情况下,onStop紧接着会被调用。此方法不能做耗时操作,否则会影响新活动的显示 onStop:活动即将停止,此方法不能做耗时操作 onDestroy:活动即将被销毁,可以做一些回收工作和资源释放 异常情况下的生命周期 1.系统配置改变导致活动被杀死并重新创建 如从竖屏切换到横屏时

Android中Activity启动模式详解

£可爱£侵袭症+ 提交于 2020-01-11 07:28:02
  在Android中每个界面都是一个Activity,切换界面操作其实是多个不同Activity之间的实例化操作。在Android中Activity的启动模式决定了Activity的启动运行方式。   Android总Activity的启动模式分为四种: Activity启动模式设置: <activity android:name=".MainActivity" android:launchMode="standard" /> Activity的四种启动模式: 1. standard 模式启动模式,每次激活Activity时都会创建Activity,并放入任务栈中。 2. singleTop 如果在任务的栈顶正好存在该Activity的实例, 就重用该实例,否者就会创建新的实例并放入栈顶(即使栈中已经存在该Activity实例,只要不在栈顶,都会创建实例)。 3. singleTask 如果在栈中已经有该Activity的实例,就重用该实例(会调用实例的onNewIntent())。重用时,会让该实例回到栈顶,因此在它上面的实例将会被移除栈。如果栈中不存在该实例,将会创建新的实例放入栈中。 4. singleInstance 在一个新栈中创建该Activity实例,并让多个应用共享改栈中的该Activity实例。一旦改模式的Activity的实例存在于某个栈中

Android中Activity启动模式全面解析

笑着哭i 提交于 2020-01-11 02:26:51
在Android应用中, Activity是最核心的组件, 如何生成一个Activity实例, 可以选择不同的启动模式, 即LaunchMode. 启动模式主要包括: standard, singleTop, singleTask, singleInstance. 标准模式在每次启动时, 都会创建实例; 三种单例模式, 会根据情况选择创建还是复用实例. 在Activity启动中, 创建实例的生命周期: onCreate -> onStart -> onResume; 重用实例的生命周期: onNewIntent -> onResume. 在AndroidManifest的Activity中, 使用launchMode属性, 可以设置启动模式, 默认是standard模式; 使用taskAffinity属性, 并添加包名, 可以设置Activity栈, 默认是当前包名, 只能应用于single模式. 希望通过本文, 可以更好的理解Activity的启动模式(LaunchMode). 观察Activity栈的脚本, 参考第5点 . adb shell dumpsys activity | sed -n -e '/Stack #/p' -e '/Running activities/,/Run #0/p' 本文示例的GitHub 下载地址 1. Standard 标准模式,

Android总结篇系列:Activity启动模式(lauchMode)

依然范特西╮ 提交于 2020-01-10 06:46:32
本文转载自: https://www.cnblogs.com/lwbqqyumidi/p/3771542.html 作者:lwbqqyumidi 转载请注明该声明。 本来想针对Activity中的启动模式写篇文章的,后来网上发现有人已经 总结 的相当好了,在此直接引用过来,并加上自己的一些理解,在此感谢原作者。 文章地址: http://blog.csdn.net/liuhe688/article/details/6754323 ------------------------------------------------------------------------------------------------- launchMode在多个Activity跳转的过程中扮演着重要的角色,它可以决定是否生成新的Activity实例,是否重用已存在的Activity实例,是否和其他Activity实例公用一个task里。这里简单介绍一下task的概念,task是一个具有栈结构的对象,一个task可以管理多个Activity,启动一个应用,也就创建一个与之对应的task。 Activity一共有以下四种launchMode: 1.standard 2.singleTop 3.singleTask 4.singleInstance 我们可以在AndroidManifest.xml配置