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应用在开发到了一定阶段以后,功能模块将会越来 ...
随机推荐
- node io.sockt 聊天应用
index.html <!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset=& ...
- 8021x 获取IP信息失败,请检查锐捷认证客户端当前配置是否符合所在网络的要求,检查完毕后尝试重新认证
早上一起床,登陆锐捷客户端上网,谁知道错问题了.不能联网了,锐捷登陆成功,但是一会儿就提示失败,获取IP信息失败了.下面我描述一下问题原因: 锐捷登陆后有认证提示,和往常正常情况一样的,不过有个小感叹 ...
- hdu-4893-Wow! Such Sequence!-线段树【2014多校第三场-J】
题意:一个初始为0的数组,支持三种操作:1.向第k个数添加d,(|d| < 2^31);2.把[l, r]区间内的数字都换成与它最相近的Fibonacci数;3.询问[l, r]区间的和. 思路 ...
- BZOJ 1502 月下柠檬树(simpson积分)
题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=1502 题意:给出如下一棵分层的树,给出每层的高度和每个面的半径.光线是平行的,与地面夹角 ...
- minimum-moves-to-equal-array-elements
https://leetcode.com/problems/minimum-moves-to-equal-array-elements/ package com.company; import jav ...
- 51nod 博弈论水题
51nod1069 Nim游戏 有N堆石子.A B两个人轮流拿,A先拿.每次只能从一堆中取若干个,可将一堆全取走,但不可不取,拿到最后1颗石子的人获胜.假设A B都非常聪明,拿石子的过程中不会出现失误 ...
- PHP几个几十个G大文件数据统计并且排序处理
诸多大互联网公司的面试都会有这么个问题,有个4G的文件,如何用只有1G内存的机器去计算文件中出现次数最多的数字(假设1行是1个数组,例如QQ号 码).如果这个文件只有4B或者几十兆,那么最简单的办法就 ...
- 如何快速delete数据
苦于qa账号,木有drop,truncate权限,同步数据要挨个delete表里边的数据,就写了个脚本,循环删除某个目标库的所有表里边的数据. 先在information_schema的库里边,通过T ...
- IOS中UIWebView执行javaScript脚本时注意点
1.webView之所以能够滚动,因为它内部有一个UIScrollView子控件 2.移除webView顶部和底部灰色的一层view * 遍历webView中scrollView内部的所有子控件 * ...
- 【英语】Bingo口语笔记(17) - 表示“感谢/不用客气“