发表时间:2022-03-25来源:网络
欢迎来到人人都可写代码,大家好,我是杨晓华,今天我们的课程内容是:讲解应用程序内部如何传递消息,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
上一篇:无锁编程基础与代码实现
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-02-15
2022-02-14