2.Intent

  1.Intent分为显示调用和隐式调用

  a.显示调用:

  Intent intent = new Intent(FirstActivity.this,SecondActivity.class);

  startActivity(intent);

  b.隐式调用:

  第一步,先编写清单文件

  <activity android:name=".SecondActivity" >

  <intent-filter>

  <action android:name="com.example.activityteset.ACTION_START" />

  <category android:name="android.intent.category.DEFAULT" />

  </intent-filter>

  </activity>

  第二步,编写代码

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

  startActivity(intent);

  2.Intent除了可以进行页面的跳转外,还可以传值

  方式1,向第二个页面传值

  页面1代码:

  Intent intent = new Intent(FirstActivity.this,SecondActivity.class);

  intent.putExtra("extra_data","此处是需要传递的值");-->此处是采用键值对的方式来进行的,extra_data是键,后面是值

  startActicity(intent);

  页面2代码:

  Intent intent = getIntent();-->获得Intent

  String data = intent.getStringExtra("extra_data");-->根据extra_data这个键,取出与之对应的值

  Log.d("SecondActivity",data);-->从log中输出

  方式2,向上一个页面传值

  页面1代码:

  Intent intent = new Intent(FirstActivity.this,SecondActivity.class);

  startActivityForResult(intent,1);---第一个参数是意图,第二个参数可以是任意唯一数字

  /** 由于使用的是startActivityForResult调用的第二个活动,所以在第二个活动结束前会调用onActivityResult方法,所以要重写该方法*/

  switch(requestCode){

  case 1:---对应上面startActivityForResult(intent,1);l里的1

   if(resultCode == RESULT_OK){

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

    Log.d("FirstActivity",returndata);

    }

    break;

  default:

  }

  页面2代码:

  Intent intent = new Intent();

  intent.putExtra("extra_data","此处是要返回的数据");

  setResult(RESULT_OK,intent);---第一个参数代表处理结果,一般写RESULT_OK和RESULT_CANCELED这两个值

  finish();

  3.活动的生命周期:

  onCreate(建立)-->onStart(开始)-->onResume(继续)-->onPause(暂停)-->onStop(停止)-->onDestory(销毁)

   4.若想设置一个对话框似的activity,则需要在清单文件里设置主题

  <activity android:name=".DialogActivity" android:theme="@android:style/Theme.Dialog"></activity>

   5.如果当前的activity被打断,并且希望保留打断之前的数据,那么需要重写onSaveInstanceState方法

  super.onSaveInstanceState(outState);---outState是Bundle类型的对象

  outState.putString("data_key","此处填写要保存的信息");

  在onCreate方法中恢复数据

  super.onCreate(saveInstanceState);

  if(saveInstanceState!=null){

   String data = saveInstanceState.getString("data_key");

  Log.d(FirstActivity,data);

  }

   6.活动的启动模式

  standard---调用一个Activity就会覆盖当前栈,即使被调用是当前的Activity,那么也会覆盖

  singleTop---如果被调用是当前的Activity,并且处于栈顶,那么就不会再重新覆盖

如果被调用的Activity不在栈顶,那么就会重新覆盖,但是此时的Activity和栈底部的Activity在本质来讲已经不是同一个Activity了

  singleTask---被调用的Activity在当前栈中是唯一的,如果调用底部的Activity,那么它上面的所有Activity全部执行出栈操作

  singleInstance---设立单独的一个栈来管理,比如:A和C是一个栈,B是单独的一个栈,正确顺序是A进入B再进入C,但是返回的时候是C->A->B->退出

   7.控制手机返回键的功能要重写onBackPressed方法

时间: 2024-08-08 10:52:01

2.Intent的相关文章

intent.getExtras()和intent.getStringExtra()

intent.getExtras()返回一个Bundle对象. 看下面代码: Intent intent=new Intent(this,SecondActivity.class); Bundle bundle=new Bundle(); bundle.putString("test", "123"); intent.putExtras(bundle); startActivity(intent); String params=this.getIntent().ge

Intent传参数

Intent 是Android 程序中各组件之间进行交互的一种重要方式,它不仅可以指明当前组 件想要执行的动作,还可以在不同组件之间传递数据.Intent 一般可被用于启动活动.启动 服务.以及发送广播等场景 // A activity调用 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // setContentView(R.layout.act

Android之Intent

前言:大家都知道Android程序的实现一般都由四大组件构成: Activity :Android程序实现功能的主体,提供了和客户交互的界面,也提供了和后台交互的功能. Service :是一个没有界面的activity,主要用于后台运行的程序. Broadcast :是当前程序和系统之间通信的工具. ContentProvider :android程序,管理资源的一种工具. 上面这4个组件都需要在manifest里面注册才能够使用,manifest就相当于android程序的大管家.当然光有组

Pro Android学习笔记(十一):了解Intent(中)

Intent的构成 Intent可以带有action,data(由URI表达),extra data(key/value map,键值对),指定的类名(成为component name).一个intent至少携带上述的一个内容. Action.Action名,在上一笔记中已经给出两种例子,一种是系统自带的,如Intent.ACTION_DAIL,一种是开发者通过AndroidManifest.xml进行注册的,在创建intent时给出:Intent intent=new Intent(Strin

Android中Intent的深入理解

(1)Intent提供了一种通用的消息系统,它允许在你的应用程序见传递Intent来执行动作和产生事件,使用Intent可以激活Android应用的三种类型的核心组件:活动Activity.服务Service.广播接受者Broadcast. (2)Intent又分为隐士意图和显示意图. 显示意图:调用intent.setComponent().intent.setClassName()或者intent.setClass()方法明确的制定组件名的Intent为显示意图,显示意图明确的制定要激活哪一

Intent中的四个重要属性——Action、Data、Category、Extras

Intent作为联系各Activity之间的纽带,其作用并不仅仅只限于简单的数据传递.通过其自带的属性,其实可以方便的完成很多较为复杂的操作.例如直接调用拨号功能.直接自动调用合适的程序打开不同类型的文件等等.诸如此类,都可以通过设置Intent属性来完成. Intent主要有以下四个重要属性,它们分别为: Action:Action属性的值为一个字符串,它代表了系统中已经定义了一系列常用的动作.通过setAction()方法或在清单文件AndroidManifest.xml中设置.默认为:DE

intent对于电话和浏览器调用

1.创建xml文件及按钮 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <Button android

ndroid学习笔记-Activity&amp;Intent

界面activity_main.xml 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"     xmlns:tools="http://schemas.android.com

Intent学习

1.Intent是什么 Android中提供了Intent机制来协助应用间的交互与通讯,Intent负责对 应用中一次操作的动作.动作涉及数据.附加数据进行描述,Android则 根据此Intent的描述,负责找到对应的组件,将 Intent传递给调用的组 件,并完成组件的调用. Intent不仅可用于应用程序之间,也可用于应用程序内部的Activity/Service 之间的交互.因此,Intent在这里起着一个中介的作用,专门提供组 件互相调用的相关信息,实现调用者与被调用者之间的解耦. 2

Activity以singleTask模式启动,intent传值的解决办法

转载请注明出处,谢谢http://blog.csdn.net/harryweasley/article/details/46557827 因为项目中,有一个消息推送的功能,每次推送一个消息,就会开启FunctionActivity,那么为了避免重复开启它,在退后的时候,多次出现该Activity,就将该Activity的启动模式变为singleTask. 这样在之后的多次启动该Activity,便会调用onNewIntent(Intent intent)方法. activity通过intent传