Android 平台如何传值 绝对让你看明白

安卓蓝牙TouchScreen协议踩坑全记录:从‘绝对鼠标’的失败到‘真触摸屏’的成功(附Android 12+权限配置) 本文详细记录了从安卓蓝牙HID绝对鼠标协议失败到成功实现TouchScreen协议的技术探索过程。通过对比鼠标与触摸屏协议的核心差异,解析正确的HID报告描述符,并针对Android 12+的蓝牙权限配置提供实战方案,帮助开发者避免常见陷阱,实现精准触控功能。 阅读详情



当一个application 中有多个 Activity的时候,那么每个Activity之前的传值就是一个问题了。所以这里介绍一下相关的方法。

在Android平台传值,主要使用两种方法一个事 PendingIntent  另一个就是广播了

按照大类,我把相关的类进行了划分

1.实体类   Intent  、Context 、  BroadcastReceiver 
2.方法类   PendingIntent   Context.sendBroadcast

传递的方法 也就是方法类中的两种


A Intent 字面意思是意图,其实他的效果和字面意思差不多,高焕堂的很多书中都有详细的介绍。

    他就像一个快递员,而且是个无所不能的快递员,什么都能送,只要你能把信息加到他上面去

    详细的使用方法可以再SDK中找到,如果想要添加你想要的内容 可以用 Intent.set**系列方法。

B Context 这个翻译成环境更好一些

    顾名思义 他就是获取我们当前的环境状态, 比如说我想知道现在用户使用的什么语言,处于什么状态,航班、静音。用户有没有接打电话

    等等,就像我们获取系统时间一样。Context也我们设置了一个容器让我们来获取系统的状况。

    因为这个系统状况很重要,有的时候就是以系统状态为依据,所以Intent 好多方法都要加入这个 都需要 Intent.context

C   BroadcastReceiver  是专门用来接收广播的类

     所以他有一个OnReceive()的方法 而具体的接受 我在下面详述。




α PendingIntent  这个方法就是直接传递 Intent 
    好传出了,怎么才能保证能接收到呢?因为Intent是一个很强大的快递员,他能记录货物需要达到的地点,所以PendingIntent 干吗,他相当于一个Intent的工作场所,他只负责吧Intent送出去
   而Intent 去那里,直接告诉 Intent就可以了
   通过下面这条语句就可以达到显影的效果  intent.setClass(Activity.this//指代Activity, Report.class//指代目标类);

   接收端怎么获取消息呢,这个也简单。因为Intent 已经按照他自己的地址来到了所处的地方,我们直接实例化就行了。
   当然这是在简单的情况下,就是说如果这个公司只有一个货物所以我们之需要一个快递员就可以,接收方目前只有这个货物需要接收,那快递员一到他接收方只要确认一下就知道他来干嘛了。

   但多数情况下,两家公司的业务非常繁忙,所以可能有多个快递员,多个货物,同一个部门可能有多个。那么怎么来做呢。就需要加限定规则
   (1)首先是 在Intent中加限定,可以设定一个 Permission String  就像暗号一样,如果暗号对了肯定错不了 (这个在广播方法中很重要) 
   (2)另一个就是在实例化的时候确定好实例的是那个一个 参数

    具体的请大家参看SDK

β 使用广播来进行数据传递
    如果直接使用PendingIntent 是有目的的传送, 那广播可真算是漫无目的的传送信息了

    其实Broadcast 中传递的内容也是Intent ,但可以传递的范围可是远的多。
    而且系统的很多其他程序也在发送广播,比如说手机的状态,还要说一下航班状态,如果出于航班状态,那么系统就会自动发送广播,而我们只要去接收就好,这样我们就能知道哦,系统现在时在广播状态。

      而在Widget 接受方法使用广播,一方面是因为AppWidget 本来就是继承BroadcastReciever 所以比较纯,不会出问题。另外,这个是我的个人判断,因为Widget还是和普通的app不同,我估计如果直接给 Widget传送 Intent 又会受到限制,就像 handler的一样,当然这是我的猜测,但是感觉还是用 广播靠谱

      广播的载体是Intent,但是他们的标号则是Action。系统内定了很多Action。

      当然我们也可以自己定义Intent 。 之需要 Intent("你自己定义的一个字符串")

      接收方麻烦一些 需要 注册
registerReceiver(intent, commandFilter); 
      第二个参数是Intent的过滤,而且不能为空。

      如果是自己定义的Action 那还需要

String action = intent.getAction();

if (action.equals("自定定义的Action")) { 相应的Intent的实例化 必须在这里进行
}


Σ Widget 使用 PendingIntent 是因为 没有其他的方法了。说实话 AppWidget 就给我们一个 可以使用RemoteViews 的方法,别的都不能用。所以就顺势写了一个SetPeningIntent 当然这个方法也有很多固定的用法 ,启动服务,启动活动 ,发送广播,基本上该有的他都有了 。



3.最后再来说一下 Action  其实一个字符串但是这个字符串 因为很长所以基本上很少有人和其明明重合
   他们就是来定义一些状态,还是航空状态,他的的Action就是 
ACTION_AIRPLANE_MODE_CHANGED

Android Killer入门指南:安卓逆向工程图形化工具实战解析 安卓逆向工程是分析移动应用内部机制、理解其工作原理的关键技术,广泛应用于安全评估、漏洞挖掘与学习研究。其核心原理在于通过反编译、静态分析与动态调试等技术,将已编译的APK文件还原为可读的代码与资源,从而洞察应用逻辑。掌握这项技术不仅能深化对安卓系统运行机制的理解,更能提升开发者的代码安全与防御能力。在众多工具中,Android Killer以其图形化集成环境脱颖而出,它无缝整合了Apktool、dex2jar、jd-gui等经典命令行工具,将复杂的反编译、代码查看、打包签名流程可视化,极大降低了逆向工程的学 阅读详情

相关推荐

蓝牙AVRCP绝对音量调试实战:协议握手、芯片映射与跨平台兼容

AVRCP绝对音量是蓝牙音频设备实现精准音量同步的核心机制,其本质并非简单指令下发,而是基于协议版本协商、能力发现与状态事件上报的双向控制流程。理解AVRCP 1.6规范中GetVolume/VolumeChanged等关键命令的交互逻辑,有助于厘清安卓手机音量失灵、iOS无缝调节等现象背后的原理差异。该机制的技术价值在于解决多设备切换音量跳变、UI无法显示百分比、车载主机精确控音等工程痛点,广泛应用于TWS耳机、智能音箱及车机系统开发。实际落地高度依赖芯片固件对寄存器映射、事件上报和iOS私有命令(如0x

weixin_29174013的博客 314

常见的Android数据传递方法汇总

一、Activty与Activty 1、 2、 二、Activity与Fragment 1、 2、 三、Fragment与Fragment 1、 2、

weixin_42927372的博客 8010

传值框架evnetbus

这是一个模拟后台下载前台更新ui的时用evnetbus传值的moudle示例

Android开发Activity之间传值的四种方式

Android开发Activity之间传值的四种方式

本博客分享软硬件一体化开发实战。硬件涵盖 PCB 设计、STM32 等 MCU 底层开发;软件包含 C++、Rust,Qt/QML、PyQt、Slint、TouchGFX、LVGL 各类 GUI 框架。方便软硬件开发者查阅学习。欢迎关注! 1792

Android中Activity之间如何通信以及传值

以及Activity之间的通过Intent传值,startActivityForResult(intent, REQUSET)以及onActivityResult(int requestCode, int resultCode, Intent data)基本使用

Android五种数据传递方法汇总

Android开发中,在不同模块(如Activity)间经常会有各种各样的数据需要相互传递,我把常用的几种 方法都收集到了一起。它们各有利弊,有各自的应用场景。 我现在把它们集中到一个例子中展示,在例子中每一个按纽代表了一种实现方法。

Android基础——PendingIntent理解

1. PendingIntent认识 PendIntent其实是Intent的封装,这就带来了几个问题: 为什么要有PendingIntent?与Intent有什么区别? PendingIntent的应用场景主要有哪些? 它的内部是如何实现的? 1.1 与Intent的区别 Intent 是意图的意思。Android 中的 Intent 正是取自这个意思,它是一个消息对象,通过它,Andr...

zhewen的博客 3万+

Docker 安装 CentOS7

本文主要介绍了docker 下安装centos7。访问 CentOS 镜像库地址:https://hub.docker.com/_/centos?tab=tags&page=1。可以通过 Sort by 查看其他版本的 CentOS 。默认是最新版本 centos:latest 。 使用以下命令来查看是否已安装了 centos7: 启动centos容器,并把docker上centos的22端口映射到本机60001端口(端口号可以自己指定) 3、进入到Centos容器 4.安装ssh服务和网络必须软件

折腾java的博客 1万+

Android Activity的四种经典传值方法

开发中遇到多个activity的传值问题 相邻两个之间的传值 或者多个三个以上之间的传值问题 但是很多同学这方面经验还是不足,说下常用的开发场景        1 一般的注册或者添加某项信息界面就会遇activity传值问题          2  比如我在一个界面提交新息  需要打开一个新的界面选择里面的信息回到当前activty的时候

Tamic (大白) 1万+

similarity network fusion for aggregating data types on a genomic scale

基因组规模上的聚合数据类型的相似性网络融合 摘要:         近期的技术已经使收集不同类型的全基因组数据十分划算,结合这些数据去创建一个给定的疾病或生物过程的一个全面视图的计算方法是有必要的。相似网络融合(SNF:similarity network fusion)通过创建每一个可利用的数据类型的样本(如,患者)的网络可以解决这个问题。例如,创建一个给定一群患者疾病的全面视图,SNF计算

augustar学习笔记 7869

Unity轻量级框架QFramework:四层架构与命令事件驱动的实战指南

在Unity游戏开发中,软件架构是确保项目可维护性和可扩展性的核心。通过分层架构(如MVC、DDD)和事件驱动设计,开发者能够有效管理代码复杂度,实现模块间的解耦与高效通信。QFramework作为一个轻量级框架,精准地运用了这些原理,通过严格定义的四层架构(表现层、系统层、数据层、工具层)和命令/事件通信规则,为中小型项目提供了“约束下的自由”。其核心价值在于以极简的代码(不足1000行)强制实施清晰的职责分离,如使用命令模式集中管理状态变更,并通过事件驱动实现响应式更新。这种设计特别适用于解决项目规模扩

weixin_42521032的博客 262

Android中传值的几种方法

Android 中传值是非常重要的,下面分享几种简单方便的传值方法: 1.第一种:顾名思义,就是Intent传值,只要应用于Activity之间的值传递 2.第二种:使用Enventbus,这种传值功能强大,无视很多问题,具体就不细讲,如果遇到传值不方便,但是又必须传递的话,可以学习EnventBus传值,网上有教程 3.第三种:回调传值,这大多应用在Android手

wulongfei321的博客 1597

剑灵解包器修改xml.dat文件修改乳量方法

本篇内容是基于单机版网游改单机版游戏剑灵的内容,主要针对关于单机版进行数据修改,当然了对于网端有关于剑灵已有很多,像小助手等多种可以更改,但是存在有封号危险,好,下面我们是在单机版中来进行乳量的修改教程。

灵魂学者的博客 3312

安卓微信支付踩坑,对刚接触安卓开发的小白绝对有帮助

刚接触安卓开发,就遇到了项目需要接入微信支付以及退款功能,根据自己iOS开发的经验,确定如下几个步骤,一步一步的来,有不对的地方多担待。1.配置微信支付的环境,下载微信官方提供demo,把里面需要配置的包拖进你的当前工程,这里说一下,微信官方的demo就是屎,很多的东西,需要使用者自己慢慢的爬坑,官方demo传送地址 微信安卓demo下载需要把下面两个包拖进你的工程里,第一个有用,第二个目前还不知

yu19931202的博客 1971

数字IC后端面试题目汇总含解析,ICer上岸必备!

今天IC修真院为大家带来了数字IC后端的面试题目,希望大家能够用得上。

coachip的博客 2448

损失函数大汇总(六十一)(Signed Distance Map Loss附公式推导与代码)

摘要 本文介绍了Signed Distance Map (SDM) Loss,一种将形状先验直接融入分割任务的方法。SDM将每个像素表示为到目标边界的带符号距离(内部为负,外部为正),相比二值mask能更连续地表达形状几何信息。SDM Loss的核心思想是让网络学习这个隐式形状场,通过可微的Heaviside函数近似将SDM转换为分割结果。文中重点分析了一种product-based regression loss,它能同时关注距离数值和内外符号的正确性,对边界区域尤为敏感。SDM Loss通常与传统的分割

悦学共鸣,温柔以待,汇聚光芒,共同成长 188

2026移动开发选型指南:Android、iOS、跨平台与安卓上架全流程

移动应用开发中,原生开发与跨平台框架的选型直接影响团队效率与产品性能。原生开发通过Kotlin协程与SwiftUI等现代技术栈,实现对平台能力的零延迟访问,在重计算与高频交互场景下性能优势显著;跨平台方案则凭借Flutter的自绘UI与React Native的生态,在UI一致性与开发效率上表现突出。理解异步编程模型与声明式UI原理,能帮助团队在性能底线与人力成本间找到平衡。从应用打包、签名配置到隐私合规与市场审核,工程实践的每个环节都关乎上架成败。本文系统梳理三条技术路线的适用边界,并拆解安卓应用从开发到

weixin_33836874的博客 440

Midscene.js(1):Chrome 插件实战之基于 AI 驱动 WEB UI 自动化测试「喂饭教程」

Midscene.js 是一款开源的AI驱动UI自动化工具,支持自然语言交互、数据提取、断言验证等多种功能。自然语言交互。本文将以 Midscene.js Chrome 插件为例,带你从零上手,体验如何用最简单的方式实现高效、智能的UI自动化测试。

blues_C的博客 4404

第 1 篇 入坑不亏!瑞芯微 RK 平台 + 安卓驱动开发,小白全维度扫盲

本系列是国内少有的纯小白友好、全流程闭环的瑞芯微 RK 平台安卓驱动开发教程,全程遵循「扫盲→筑基→环境→原理→实战→进阶→项目落地」的渐进式路径,绝对不跳步、不搞天书式教学。

爱片闲串,爱钓鱼,爱中医,爱分享 1177

Android车载音频系统概览

官网有些部分的内容描述比较简单,对没有app、系统和底层开发经验,容易一眼扫过,没有留意到相关细节。 本节补充车载音频相关细节。

hwj的博客 785

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

python能运行在安卓上吗,python支持安卓系统吗

我们使用kivy开发安卓APP,Kivy是一套专门用于跨平台快速应用开发的开源框架,使用Python和Cython编写,对于多点触控有着非常良好的支持,不仅能让开发者快速完成简洁的交互原型设计,还支持代码重用和部署,绝对是一款颇让人惊艳的NUI框架。142244252 学习资料交流群,想要和志同道合的朋友一起学习,大家互相分享自己的学习资料和作品,欢迎感兴趣的朋友共同学习,共同进步,每天还会有免费的公开课程!它可以在Android,iOS,Linux,OS X和Windows执行。

2401_82891588的博客 374

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

UE跨平台启动外部程序:Windows/安卓/iOS全方案详解

在游戏引擎与原生应用混合开发的工程实践中,跨平台应用集成始终是绕不开的技术难点。UE(虚幻引擎)作为主流引擎,提供了进程控制、深链协议等底层能力,但Windows、Android、iOS三套体系各有不同的应用拉起机制。理解其底层原理,是解决“打开外部软件”需求的关键。Windows基于进程模型,可用CreateProc启动任意exe并传递参数;Android依赖Intent机制,需通过JNI桥接Java层唤起第三方App;iOS则遵循URL Scheme与Universal Link协议,并受系统安全策略约

weixin_33095355的博客 240

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

python可以在安卓上运行吗,python可以在安卓运行吗

我们可以使用kivy开发安卓APP,Kivy是一套专门用于跨平台快速应用开发的开源框架,使用Python和Cython编写,对于多点触控有着非常良好的支持,不仅能让开发者快速完成简洁的交互原型设计,还支持代码重用和部署,绝对是一款颇让人惊艳的NUI框架。我们知道了Python可以开发桌面应用(PyQt、wxPython等),可以开发服务端(twisted等),可以开发web端(Django、Flask等),开发爬虫(pyspider等),开发硬件stm32(PyBoard等),是一个全栈开发语言。

yuuuuuuuu77的博客 445

android 记事本软件,安卓日历记事本软件

哪款手机记事本或者日历软件比较好这些都可以使用系统自带的,自己的记事本都差不多,严格来讲,这类功能单一的东西差别还是比较小的,苹果的有手写功能,锤子便签可以写markdown,还有魅族的便签,各有特色吧,其实差异不大,主要是自己多用用习惯就好。至于日历,个人一直都是outlook,这个是第三方的,各个平台都有。自带日历主要是看日期的话,其实都一样。万年历可以自己下载一个,现在一般都自带农历了。哪款...

weixin_33162074的博客 956
上一篇: 编写高效的Android代码
下一篇: java反射性能测试分析
sukyle
博客等级 码龄18年 41粉丝 69原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值