android LocalActivityManager说明
类概述
Helper class for managing multiple running embedded activities in the same process. This class is not normally used directly, but rather created for you as part of theActivityGroup implementation.
首先说明一下,意思就是说这个类不能单独使用,只能在ActivityGroup里面使用。他的作用是管理多个正在运行的嵌入的activity的界面。。。
关于成员方法的说明:
其实看SDK也就可以知道了。。。
主要的就是派遣方法,让某一个操作可以作用于在这个ActivityGroup里面的Activity
| Window | destroyActivity(String id, boolean finish)
摧毁该ID的activity。。。。并且返回你删除的activity的view。。。Destroy the activity associated with a particular id.
|
| void | dispatchCreate(Bundle state)
Restore a state that was previously returned by
saveInstanceState(). |
| void | dispatchDestroy(boolean finishing)
Called by the container activity in its
onDestroy() so that LocalActivityManager can perform the corresponding action on the activities it holds. |
| void | dispatchPause(boolean finishing)
Called by the container activity in its
onPause() so that LocalActivityManager can perform the corresponding action on the activities it holds. |
| void | dispatchResume()
Called by the container activity in its
onResume() so that LocalActivityManager can perform the corresponding action on the activities it holds. |
| void | dispatchStop()
Called by the container activity in its
onStop() so that LocalActivityManager can perform the corresponding action on the activities it holds. |
| Activity | getActivity(String id)
Return the Activity object associated with a string ID.
|
| Activity | getCurrentActivity()
Retrieve the Activity that is currently running.
|
| String | getCurrentId()
Retrieve the ID of the activity that is currently running.
|
| void | removeAllActivities()
Remove all activities from this LocalActivityManager, performing an
onDestroy() on any that are currently instantiated. |
| Bundle | saveInstanceState()
Retrieve the state of all activities known by the group.
|
| Window | startActivity(String id, Intent intent)
Start a new activity running in the group.
|
下面主要说明一下startActivity(String id, Intent intent)这个方法:
Start a new activity running in the group. Every activity you start must have a unique string ID associated with it -- this is used to keep track of the activity, so that if you later call startActivity() again on it the same activity object will be retained.
When there had previously been an activity started under this id, it may either be destroyed and a new one started, or the current one re-used, based on these conditions, in order:
- If the Intent maps to a different activity component than is currently running, the current activity is finished and a new one started.
- If the current activity uses a non-multiple launch mode (such as singleTop), or the Intent has the
FLAG_ACTIVITY_SINGLE_TOPflag set, then the current activity will remain running and itsActivity.onNewIntent()method called. - If the new Intent is the same (excluding extras) as the previous one, and the new Intent does not have the
FLAG_ACTIVITY_CLEAR_TOPset, then the current activity will remain running as-is. - Otherwise, the current activity will be finished and a new one started.
If the given Intent can not be resolved to an available Activity, this method throws ActivityNotFoundException.
Warning: There is an issue where, if the Intent does not include an explicit component, we can restore the state for a different activity class than was previously running when the state was saved (if the set of available activities changes between those points).
参数
| id | Unique identifier of the activity to be started |
|---|---|
| intent | The Intent describing the activity to be started |
返回值
- Returns the window of the activity. The caller needs to take care of adding this window to a view hierarchy, and likewise dealing with removing the old window if the activity has changed.
简单的翻译一下就是:
新建并且运行一个activity在activitygroup里面,主要的说明就在这个String id里面,说尽量在新建时候不要是用同一个
id,因为这个样子就会到导致如果你使用再一次 startActivity() ,那么就会继续保留下去。。。
当这个activity需要被销毁的时候:
如果有以下的情况就可以不用销毁。其他都需要销毁。。。
1.已经有一个老的intent,而且新的intent没有使用FLAG_ACTIVITY_CLEAR_TOP 这个参数
2.当前的activity使用的是uses a non-multiple launch mode 的话
3.intent还有不从的界面组件。。。
android LocalActivityManager说明的更多相关文章
- Android LocalActivityManager的用法
在开发中会碰到在一个activity中的局部(或者是activity的Fragment中)显示其他的activity 的内容,这时就用到了LocalActivityManager类. 假设这个容器是一 ...
- android 使用Tabhost 发生could not create tab content because could not find view with id 错误
使用Tabhost的时候经常报:could not create tab content because could not find view with id 错误. 总结一下发生错误的原因,一般的 ...
- Android 中常见控件的介绍和使用
1 TextView文本框 1.1 TextView类的结构 TextView 是用于显示字符串的组件,对于用户来说就是屏幕中一块用于显示文本的区域.TextView类的层次关系如下: java.la ...
- 【Bugly安卓开发干货分享】Android APP 快速 Pad 化实现
项目背景 采用最新版本手机 APP(之后称为 MyApp)代码,实现其 Pad 化,为平板和大屏手机用户提供更好的体验.为实现 MyApp 的 Pad 化工作,需要我们首先来了解一下 MyApp 项目 ...
- Android开发资源推荐第2季
Android CPU监控想法,思路,核心技术和代码 Android App /Task/Stack 总体分析 http://www.eoeandroid.com/thread-161703-1-1. ...
- Android UI学习 - Tab的学习和使用(转)
本文是参考Android官方提供的sample里面的ApiDemos的学习总结. TabActivity 首先Android里面有个名为TabActivity来给我们方便使用.其中有以下可 ...
- 【读书笔记《Android游戏编程之从零开始》】6.Android 游戏开发常用的系统控件(TabHost、ListView)
3.9 TabSpec与TabHost TabHost类官方文档地址:http://developer.android.com/reference/android/widget/TabHost.htm ...
- Android源码剖析之Framework层实战版(Ams管理Activity启动)
本文来自http://blog.csdn.net/liuxian13183/ ,引用必须注明出处! 讲到实战,就不得不拿两个例子来说明,本篇想拿的是应用最广泛的两个:Ams和Wms,一个管理activ ...
- Android应用插件式开发解决方法
转自:http://blog.csdn.net/arui319/article/details/8109650 一.现实需求描述 一般的,一个Android应用在开发到了一定阶段以后,功能模块将会越来 ...
随机推荐
- javascript 递归调用
上源码:underscore.js var flatten = function(input, shallow, output) { if (shallow && _.every(in ...
- Linux之Samba的配置
Samba的配置 对于linux与windows共享,和平共处,我们可以用Samba软件 Samba是一套免费的开源软件,可以在linux或其他类unix操作系统上实现windows域控制器,文件 ...
- 【linux】/dev/null与/dev/zero详解【转】
转自:http://www.cnblogs.com/xianghang123/archive/2012/03/23/2413381.html 使用/dev/null 把/dev/null 看作&quo ...
- make clean vs make clobber
make is pretty smart, and picks up what has changed from the last build, so if you run repo sync and ...
- java中final关键字
一.final修饰方法 禁止任何继承类修改它的定义,保证在继承中使方法行为保持不闲并且不会被覆盖. final修饰的方法,同意编译器针对该方法的调用转为内嵌调用.(类似c++ 中的inline?) p ...
- Spring+Hibernate配置多数据源
配置说明 在实际应用中,经常会用到读写分离,这里就这种情况进行Spring+Hibernate的多数据源配置.此处的配置只是让读的方法操作一个数据库,写的方法操作另外一个数据库. 注:我这里的配置JD ...
- 深入.NET框架 项目--魔兽登录系统
创建魔兽系统相关窗体: 登录窗体(frmLogin) 注册窗体(frmRegister) 主窗体 (frmMain) 实现魔兽登录系统: 登录的界面如下 实现思路: 1.创建一个对象数组,长度为1 ...
- ORACLE 中KILL session
我们知道,在Oracle数据库中,可以通过kill session的方式来终止一个进程,其基本语法结构为: alter system kill session 'sid,serial#' ; 被kil ...
- 【转】lua Date和Time
time和date两个函数在Lua中实现所有的时钟查询功能.函数time在没有参数时返回当前时钟的数值.(在许多系统中该数值是当前距离某个特定时间的秒数.)当为函数调用附加一个特殊的时间表时,该函数就 ...
- Javascript判断是否是ipad的浏览器
ipad用的是Safari Mobile浏览器,访问的UA为: Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/5 ...