知识屋:更实用的电脑技术知识网站
所在位置:首页 > 科技

人人都可写代码-Android零基础编程-Intent的使用17

发表时间:2022-03-25来源:网络

欢迎来到人人都可写代码,大家好,我是杨晓华,今天我们的课程内容是:讲解应用程序内部如何传递消息,Intent的使用。


Intent的概述

Intent最常使用就是它的跳转Activity和在Activity之间传值的功能,也可用于应用程序内部的activity, service和broadcast receiver之间的交互。在应用程序内部传递消息,一个Activity启动一个Service。Intent传递类对象提供了两种方式一种是 通过实现Serializable接口传递对象,一种是通过实现Parcelable接口传递对象,要求被传递的对象必须实现上述2种接口中的一种才能通过Intent直接传递。




2、Intent的相关属性

component(组件):目的组件

action(动作):用来表现意图的行动

category(类别):用来表现动作的类别

data(数据):表示与动作要操纵的数据

type(数据类型):对于data范例的描写

extras(扩展信息):扩展信息

Flags(标志位):期望这个意图的运行模式


3、Intent中传递两种对象的方法

Bundle.putSerializable(Key,Object); //实现Serializable接口的对象

Bundle.putParcelable(Key, Object); //实现Parcelable接口的对象

例如:登录窗体登录后传递内容:

Intent intent = new Intent();

intent.setClass(Login.this, MainActivity.class);

Bundle bundle = new Bundle();

bundle.putSerializable("user", user);

intent.putExtras(bundle);

this.startActivity(intent);

接收端:

Intent intent = this.getIntent();

user=(User)intent.getSerializableExtra("user");

以上就可以实现对象的传递。


如果传递的是List,可以把list强转成Serializable类型,而且object类型也必须实现了Serializable接口:

Intent.putExtras(key, (Serializable)list)

接收端:

(List)getIntent().getSerializable(key)



4、向三种组件发送intent的不同机制

(1)使用Context.startActivity() 或 Activity.startActivityForResult(),传入一个intent来启动一个activity。使用 Activity.setResult(),传入一个intent来从activity中返回结果。


(2)将intent对象传给Context.startService()来启动一个service或者传消息给一个运行的service。将intent对象传给 Context.bindService()来绑定一个service。


(3)将intent对象传给 Context.sendBroadcast(),Context.sendOrderedBroadcast(),或者Context.sendStickyBroadcast()等广播方法,则它们被传给 broadcast receiver。




开头:人人都可写代码-Android零基础编程-序言-01

下一篇:人人都可写代码-Android零基础编程-服务类Service的使用18

收藏
  • 人气文章
  • 最新文章
  • 下载排行榜
  • 热门排行榜