一、活动流程

1、创建活动

public class firstActivity extends Activity{}

2、创建布局

新建first_layout.xml文件

3、注册活动

在androidManifest.xml中注册活动

二、活动的几个功能点

1、隐藏标题栏

requestWindowFeature(Window.FEATURE_NO_TITLE);

2、使用Toast。提醒方式,不获得焦点,一段时间消失

Toast.makeText(firstActivity.this,"hello world",Toast.LENGTH_SHORT).show();

3、从布局文件获得元素

Button button1=(Button)findViewById(R.id.button_1);

4、使用menu

a.新建 android xml file来描述菜单main.xml

b.创建菜单 。重写活动中onCreateOptionMenu()方法

      @Override
      public boolean onCreateOptionsMenu(Menu menu)
      {
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
      }

c.给菜单中选项添加响应。重写onOptionsItemSelected()方法

        @Override

        public boolean onOptionsItemSelected(MenuItem item){
        switch(item.getItemId()){
          case R.id.add_item:
          Toast.makeText(this, "add", Toast.LENGTH_SHORT).show();
          break;
          case R.id.remove_item:
          Toast.makeText(this, "remove", Toast.LENGTH_SHORT).show();
          break;
          default:
        }
        return true;
        }

5、销毁活动

finish();

三、活动之间相互调用。通过Intent类。有很多构造函数哦

1、显式启动另外一个活动。通过显式intent

Intent intent=new Intent(firstActivity.this,secondActivity.class);  //显示调用构建方法

startActivity(intent);

2、隐式启动另外一个活动。隐式intent

a、在androidManifest.xml中给活动<activity>指定响应的action和category

b、构建intent,带有响应标识

Intent intent=new Intent("com.example.activitytest.ACTION_START");

startActivity(intent);

3、启动其它程序中的活动。通过隐式intent

a、启动系统内置浏览器

Intent intent=new Intent(Intent.ACTION_VIEW);    //Intent.ACTION_VIEW常量为 “android.intent.action.view”

intent.setData(Uri.parse("http://www.baidu.com"));

b、启动内置拨号界面

Intent intent=new Intent(Intent.ACTION_DIAL);

intent.setData(Uri.parse("tel:10086"));

4、向下一个活动传递数据

a、向intent中写入数据

intent.putExtra("extra_data","我是数据哦");

b、从intent中取出数据

Intent intent=getIntent();

String data=intent.getStringExtra("extra_data");

5、向上一个活动传递数据

a、在第一个活动中启动带返回值的第二个活动。

startActivityForResult(intent,1);

b、在第二个活动中,给intent中写入数据

Intent intent=new Intent();

intent.putExtra("data_return","我是待返回的数据哦");

setResult(RESULT_OK,intent);

c、在第一个活动中,接收数据。通过重写onActivityResult()方法

@Override
    protected void onActivityResult(int requestCode,int resultCode,Intent data){
      switch(requestCode){
      case 1:
        if(resultCode==RESULT_OK){
      String retrundata=data.getStringExtra("data_return");
      Log.d("first",retrundata);
      }
      }

四、活动的生命周期

onCreate,onStart,onResume,onPause,onStop,onDestroy,onRestart

1、完整生存期  活动在onCreate和onDestroy方法之间所经历的,就是完整生存期。onCreate方法中完成初始化,onDestroy中释放内存

2、可见生存期  活动在onStart和onStop方法之间。可见生存期内,活动对于用户总是可见的,即便有可能无法和用户进行交互。

3、前台生存期  活动在onResume和onPause方法之间。前台生存期内,活动总是处于运行状态,此时的活动是可以和用户进行交互的。

五、活动的启动模式

在androidManifest.xml中,可以设置活动的启动模式四种

1、standard模式:每当启动一个新活动,系统都会创建该活动的一个实例。而不管这个活动是否已经在返回栈中存在。导致创建多个活动实例

2、singleTop模式:启动活动时,如果发现返回栈的栈顶已经是该活动,则认为可以直接使用它,而不会再创建新的实例。但是如果该活动不在栈顶,则创建一个新的实例。导致创建多个活动实例

3、singleTask模式:启动活动时,系统首先会在返回栈中检查是否存在该活动的实例,如果发现已经存在则直接使用该实例,并把在这个活动之上的所有活动统统出栈,如果没有发现就会创建一个新的活动实例。

4、singleInstance模式:指定为singleInstance模式的活动会启用一个新的返回栈来管理这个活动。解决共享活动实例的问题。

android:activity知识点的更多相关文章

  1. 【转】Android一些知识点汇总

    Android常用知识点总汇 一.系统上安装了多种浏览器,能否指定某浏览器访问指定页面?请说明原由. 如果在你的android系统上安装了多种浏览器,能否指定某浏览器访问指定页面?答案当然是:肯定的. ...

  2. 详解Android Activity启动模式

    相关的基本概念: 1.任务栈(Task)   若干个Activity的集合的栈表示一个Task.   栈不仅仅只包含自身程序的Activity,它也可以跨应用包含其他应用的Activity,这样有利于 ...

  3. Activity知识点详解

    Activity知识点详解 一.什么是Activity 官方解释: The Activity class is a crucial component of an Android app, and t ...

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

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

  5. Android Activity launchMode研究

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

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

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

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

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

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

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

  9. Android Activity和Fragment的转场动画

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

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

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

随机推荐

  1. zz如何让你的婚姻天长地久?

    如果天长地久意味着一列永不出轨的火车,下面有关婚姻生活的战略就像制定一张准确的运行时刻表.因为成功的婚姻并非源于机运,所谓的七年之痒也不是空穴来风.对那些已婚男人来说,他们需要计划——为了一年比一年过 ...

  2. SpringMVC源码解析 - HandlerAdapter - @SessionAttributes注解处理

    使用SpringMVC开发时,可以使用@SessionAttributes注解缓存信息.这样业务开发时,就不需要一次次手动操作session保存,读数据. @Controller @RequestMa ...

  3. Opencascade、OpenGL和OpenSceneGraph的区别与联系

    OpenGL只是三维显示 Openscenegraph基于场景图的概念,它提供一个在OpenGL之上的面向对象的框架,从而能把开发者从实现和优化底层图形的调用中解脱出来 Opencascade更适合算 ...

  4. HDU1879 继续畅通工程 2017-04-12 19:12 50人阅读 评论(0) 收藏

    继续畅通工程 Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 32768/32768K (Java/Other) Total Submis ...

  5. user_mongo_in_a_docker_and_dump_database

    使用 mongo docker 镜像 使用 mongo 镜像是很方便的,直接使用官方镜像就好了,为了今后更方便使用,这里给出依据 restheart-docker 中的 docker-compose. ...

  6. MSF漏洞攻击练习系统 – Metasploitable2

    Metasploitable2 是Metasploit团队维护的一个集成了各种漏洞弱点的Linux主机(ubuntu)镜像,方便广大黑扩跟安全人员进行MSF漏洞测试跟学习,免去搭建各种测试环境.VMw ...

  7. mysql5.7 column cannot be null

    背景 独立测试环境安装了数据库,但安装的版本是mysql 5.7的版本,而研发用的是mysql5.6的版本,在执行某个数据库操作的提示,提示column “xxxx”cannot be null 问题 ...

  8. mono+jexus 部署Asp.Net Mvc5之CompilationException2

    好不容易在ubuntu上搭建了mono+jexus,欣喜若狂的部署上发布的网站,急忙打开,成功运行. 但是别高兴的太早,当我打开WebApi帮助页时出现了CompilationException. 一 ...

  9. C#基础笔记(第十七天)

    1.复习 ref 传地址 用的是同一块内存 一个改变另一个也随着改变 return n1 > n2 ? n1 : n2; 三元表达式 int max=GetMax(1,2,3,4,5,6,); ...

  10. layui json数据格式要求

    layui  数据格式要求 layui有自己的一套特定的数据格式交互(这很重要),必须参数code:0,msg:“”,count:数据size(int),data:”数据List”.一般我们选择封装返 ...