android中Activity可以说是四大组件中用的最为广泛,也是最为基本的一个组件。几乎和用户的所有交互都需要通过Activity来实现。

最近在学习过程中,有一些关于Activity的内容,让我迷惑。所以在此总结一番,以使我的知识更加牢固。

1.Activity的生命周期:

通常的生命周期一看图,都明白,但是今天遇到一个问题,让我很是无解,查了好半天,才查到原因。

刚开始我理解的是,当一个Acitivity强制设置为横屏后,再按电源按键进行锁屏,是不会重新走oncreate的,后来发现不对,因为手机本来是竖屏的,当你锁屏之后,其实又相当于切换到竖屏了,所以还是会调用oncreate的。接下来还有一个问题,那怎么才能屏蔽这个问题呢。在mainfest文件中,给activity配置android:configChanges="orientation|keyboardHidden"。本来应该说就可以了,但是尝试了半天还是不行。于是又搜索了很多,才发现在api 13之后,需要添加screenSize,所以正确的应该是android:configChanges="orientation|keyboardHidden|screenSize"

2.Activity最佳实践

最近买了本郭霖的《第一行代码》虽然内容比较基础,但是还是有很多东西可以学到。比如说,他提到的Activity的启动的最佳实践。

问题描述:

当两个人或者一个团队去完成一个项目的时候,往往每个人负责一个板块,或者功能模块,如果想调用别人写的activity,而我又不知道应该给它传递什么参数,这样就得每次去询问负责这块代码的人,或者直接看他里面是怎么写的。这样的协作效率就有点低。所以,这本书的作者提供了一种方式。如下面,一看就能懂

public class example extends Activity
{
public staitc void actionStart(Context context ,String p1,String p2)
{
Intent intent = new Intent(content,this.class);
intent.putString("parm1",p1);
intent.putString("parm2",p2);
context.startActivity(intent); } }

  

3.在broadcastreciever中启动activity

当我们在广播接收器中接收消息时,可能需要根据情况,去启动App的Activity,但是当我想当然的用普通的方式启动时,会报运行时错误,大概意思就是说,如果在广播中启动Activity时,必须将Intent的flag指定为FLAG_ACTIVITY_NEW_TASK

在flag中必须指定为newTask。

4.Activity中的launchMode与Intent中的flag的关系

经过我查资料与看网友的一些东西,初步得出这样的结论。

launchMode主要针对的是在同一个task中的行为。

而flag是指明,Activiy是否需要创建新的task。

而是否创建新的取决于,acitivy的taskAffinity是否与已有的相同。(默认情况下,一个程序中,所有的activiy的taskAffinity是 相同的)

android Activity的杂乱总结的更多相关文章

  1. Android:Activity+Fragment及它们之间的数据交换.

    Android:Activity+Fragment及它们之间的数据交换 关于Fragment与Fragment.Activity通信的四种方式 比较好一点的Activity+Fragment及它们之间 ...

  2. Android Activity launchMode研究

    Android Activity launchMode研究 Activity的Launch mode一共有四种: standard, singleTop, singleTask, singleInst ...

  3. android Activity类中的finish()、onDestory()和System.exit(0) 三者的区别

    android Activity类中的finish().onDestory()和System.exit(0) 三者的区别 Activity.finish() Call this when your a ...

  4. Android Activity的生命周期简单总结

    Android Activity的生命周期简单总结 这里的内容参考官方的文档,这篇文章的目的不是去总结Activity是如何启动,如何创造,以及暂停和销毁的,而是从实际开发中分析在Activity各个 ...

  5. Android Activity返回键控制的两种方式

    Android Activity返回键监听的两种方式 1.覆写Activity的OnBackPressed方法 官方解释: Called when the activity has detected ...

  6. Android Activity和Fragment的转场动画

    Android Activity和Fragment的转场动画 Activity转场动画 Activity的转场动画是通过overridePendingTransition(int enterAnim, ...

  7. android Activity生命周期(设备旋转、数据恢复等)与启动模式

    1.Activity生命周期     接下来将介绍 Android Activity(四大组件之一) 的生命周期, 包含运行.暂停和停止三种状态,onCreate.onStart.onResume.o ...

  8. Android Activity的加载模式和onActivityResult方法之间的冲突

    前言 今天在调试程序时,发现在某一Activity上点击返回键会调用该Activity的onActivityResult()方法.我一开始用log,后来用断点跟踪调试半天,还是百思不得其解.因为之前其 ...

  9. Android Activity的onSaveInstanceState() 和 onRestoreInstanceState()方法:

    Android Activity的onSaveInstanceState() 和 onRestoreInstanceState()方法: 1. 基本作用: Activity的 onSaveInstan ...

随机推荐

  1. [质疑]编程之美求N!的二进制最低位1的位置的问题

    引子:编程之美给出了求N!的二进制最低位1的位置的二种思路,但是呢?但是呢?不信你仔细听我道来. 1.编程之美一书给出的解决思路 问题的目标是N!的二进制表示中最低位1的位置.给定一个整数N,求N!二 ...

  2. 代理(Proxy)模式简介

    Proxy 模式简介 代理模式的两个应用: 打开文档时加载大图片 例如:如果有个对象是一张很大的图片,而这张图片需要花费很长时间才能显示出来,那么当这个图片包含在文档中的后面时,使用编辑器或浏览器打开 ...

  3. 谈FTP服务器攻击技术及其展望 (修改中)

      欢迎大家给我投票: http://2010blog.51cto.com/350944 请看下篇:谈FTP服务器攻击技术及其展望 (下)              全文完http://chengua ...

  4. T-SQL 变量

    T-SQL变量 变量的种类: 在T-SQL中,变量按生存范围可以分为全局变量(Global Variable)和局部变量(Local Variable) 1.全局变量是由系统定义的,在整个SQL Se ...

  5. Spark的发展历程

    ·2009年:Spark诞生于AMPLab.·2010年:开源.·2013年6月:Apache孵化器项目.·2014年2月:Apache顶级项目.·2014年2月:大数据公司Cloudera宣称加大S ...

  6. How to run a terminal inside of vim?

    [How to run a terminal inside of vim?] :sh turn vim into shell mode d+trl back to vim 参考:http://stac ...

  7. 微软IOC容器Unity简单代码示例1

    @(编程) 1. 通过Nuget下载Unity 这个就不介绍了 2. 接口代码 namespace UnityDemo { interface ILogIn { void Login(); } } 3 ...

  8. (转载)Java里快如闪电的线程间通讯

    转自(http://www.infoq.com/cn/articles/High-Performance-Java-Inter-Thread-Communications) 这个故事源自一个很简单的想 ...

  9. 5540 asa 8.4 防火墙

    配置等级策略,保证outside端口可以访问inside端口 access-list 100 extended permit icmp any any access-list 100 extended ...

  10. defaultAutoCommit

    driver default The default auto-commit state of connections created by this pool. If not set then th ...