关于Intent知识点的总结

Intent:

  • Android中提供了Intent机制来协助应用间的交互与通讯,或者采用更准确的说法是,Intent不仅可用于应用程序之间,也可用于应用程序内部的activity, service和broadcast receiver之间的交互。
  • Intent是一种运行时绑定(runtime binding)机制,它能在程序运行的过程中连接两个不同的组件。通过Intent,你的程序可以向Android表达某种请求或者意愿,Android会根据意愿的内容选择适当的组件来响应。

关键:应用与应用之间通信,同一个应用不同组件(activity,service,broadcastReceiver)通信  
         不同应用之间交互常用方法:
       1.Content Provider (数据共享,不需要Intent) 
         2.通过activity或broadcastReceiver中的ACTION来交互

eg:不同应用交互:(最简单的方式)
App1 发送方:
Intent intent = new Intent("XXX.XXX.XXX");//action一定要匹配才能接收到
        intent.putExtra("intent_data","可以携带数据");
        startActivity(intent);
App2 接收方:
<activity android:name=".BaseActivity"> 
 <intent-filter>
 <action android:name="XXX.XXX.XXX" /> 
 <category android:name="android.intent.category.DEFAULT" /> 
 </intent-filter>
 </activity>

2.Intent 属性介绍:
  • Intent由以下各个组成部分:
  • component(组件):目的组件 :(类似 intent.setClass(Base1Activity.this, Base2Activity.class); )
       ComponentName cn = new ComponentName(Base1Activity.this, "包名.Base2Activity");  
       intent.setComponent(cn); 
  • action(动作):用来表现意图的行动
         Intent intent = new Intent();
         intent.setAction("XXX.XXX.XXX"); // action可以是系统的,也可以是自定义的
  • category(类别):用来表现动作的类别
   在显示Intent跳转的时候,不需要指定category,但是隐示跳转的时候,指定了category,在清单文件必须加上该category属性

 Intent intent = new Intent("xxx.xxx.xxx"); //action
// intent.addCategory("xxx.xxx.xxx"); //指定了category,则接收的时候必须指定,不然不能接收,category可以允许多个
 startActivity(intent);  //没有指定category,则接收的时候加载默认的就可以了          
 
<activity
            android:name=".BaseActivity">
            <intent-filter>
                <action android:name="XXX.XXX.XXX" />
                <category android:name="xxx.xxx.xxx" />
                <category android:name="android.intent.category.DEFAULT" />          
            </intent-filter>        
        </activity>



  • data(数据):表示与动作要操纵的数据
  • type(数据类型):对于data范例的描写
  • extras(扩展信息):扩展信息 (可以把需要的参数传进来,带到另外的组件)intent.putExtras("xxx","xxx");
Intent intent = new Intent();  //data+type配合 用于调用系统组件,但是注意的是需要在清单文件下面配置各个权限
intent.setAction(Intent.ACTION_VIEW);
Uri data = Uri.parse("http://www.baidu.com");
intent.setData(data);                
startActivity(intent);
  • Flags(标志位):期望这个意图的运行模式
         intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);//用于在非activity里面跳转到activity中
         intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);//activity依次ABCD,想从D到B,加了这个就为AB,不加ABCDB
         intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);//activity不存在栈,用完即消。
         intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);//把activity设置为栈顶,经常与newIntent()配合使用。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于MySQL+Vue.js开发集成实时聊天系统的动态项目管理web端软件源码+答辩PPT+使用说明.zip 【优质项目推荐】 1.项目代码功能经验证ok,确保稳定可靠运行。欢迎下载使用!在使用过程中,如有问题或建议,请及时私信沟通,帮助解答。 2.项目主要针对各个计算机相关专业,包括计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网等领域的在校学生、专业教师或企业员工使用。 3.项目具有丰富的拓展空间,不仅可作为入门进阶,也可直接作为毕设、课程设计、大作业、项目初期立项演示等用途。 4.如果基础还行,或热爱钻研,可基于此项目进行二次开发,DIY其他不同功能。 基于MySQL+Vue.js开发集成实时聊天系统的动态项目管理web端软件源码+答辩PPT+使用说明.zip 部署前端服务 1. 打包前端文件生成 dist 文件夹 ```js // genal-chat-client npm i npm run build ``` 1. 将 dist 下所有文件放到 nginx 下的 html 文件夹中 2. 配置 nginx 的 gzip (提高传输速度)和请求级别(注意只是新增下面的代码,不是替换整个nginx文件) ```js 记得重启一下nginx #### 数据库配置 1. 安装 mysql 2. 设置 mysql 账号密码 3. 创建名为 `chat` 的数据库 4. 配置后端 `app.module.ts` 中的 mysql 账号密码 部署后端服务 1. 安装 pm2 ```js // genal-chat-server npm i pm2 -g ``` 2. 生成 dist 文件 ```js // genal-chat-server npm i npm run build ``` 3. 使用 pm2 运行 ```js // genal-chat-server npm run pm2 ```
该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值