传智播客--3G开发之添加多Activity和数据传递,Activity生命周期,广播,服务

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

1.添加新的Activity
1) 新建一个继承Activity的类
2)在AndroidManifest.xml文件中添加:<activity android:name=".NewActivity" android:label="新activity的页面标题"/>
总结:
--android:name属性值的前面加了一个点 表示NewActivity是当前包cn.itcast.action下的类
 
2.打开新的Activity  
1) 不传递参数:startActivity(new Intent(MainActivity.this, NewActivity.class));
2) 传递参数:
Intent intent = new Intent(MainActivity.this, NewActivity.class)
携带数据:Bundle bundle = new Bundle();
设置具体数 据:bundle.putString("name", "传智播客");
将数据添加到意图 中:intent.putExtras(bundle);
将意图通知操作系统:startActivity(intent);
3)接 收参数:
得到激活当前意图的意图:Bundle bundle = this.getIntent().getExtras();
String name = bundle.getString("name");
4)得到新打开Activity关闭后返回的数据
在调用端的 Activity:
startActivityForResult (new Intent(MainActivity.this, NewActivity.class),  1);
重写onActivityResult(int requestCode, int resultCode, Intent data)方法
在被调用端的Activity:
数据是使用Intent返 回:Intent intent = new Intent();
返回数据存入 Intent:intent.putExtra(“result”, “传智播客的学生很可爱”);
设置返回数 据:NewActivity.this.setResult(RESULT_OK, intent);
关闭 Activity:NewActivity.this.finish();
总结:
--显式意图:第一个参数为当前Activity类对象,第二个参数为你要打开的Activity类
-- 最后不要忘记将意图通知操作系统
--Bundle类用作携带数据,它类似于Map,用于存放key-value名值对形式的值
--传 递参数时可以不用Bundle类.intent.putExtras("name","传智播客");
--请求码:区分那个Activity的 哪个按钮的请求.
--结果码:区分是哪个Activity返回的结果.
 
3.Intent(意图)
总 结:
--Intent提供了一种通用的消息系统,为了减少耦合.
--Intent可以激活Android应用的三个核心组件:活动、 服务和广播接收器。
--Intent分成显式意图和隐式意图
--显式意图:明确指定Intent传递给哪个组件
--隐式意 图:Android系统根据隐式意图中设置的动作(action)、类别(category)、数据(URI和数据类型)找到最合适的组件来处 理这个意图。
 
4.Activity 生命周期
1)Activity三个状态:
    运行状态:当前可以使用的Activity
    暂停状态:能看到的Activity,但失去焦点.
    停止状态:看不到的Activity,被别的Activity覆盖了.
2)Activity 中的7种方法:
    void onCreate(Bundle savedInstanceState)
    void onStart()
    void onRestart()
    void onResume()
    void onPause()
    void onStop()
    void onDestroy()
3)Activity的完整生命周期自第一次调用onCreate()开始,直至调用onDestroy()为止。
4)Activity 的可视生命周期自onStart()调用开始直到相应的onStop()调用结束。
5)Activity的前台生命周期自 onResume()调用起,至相应的onPause()调用为止。
 
5.照相机的操作
总 结:
--照相机一定要记得,在不用的时候要释放.
 
6.广播接收者
1)继承BroadcastReceiver,并重写onReceive() 方法。
public class IncomingSMSReceiver extends BroadcastReceiver {
    @Override public void onReceive(Context context, Intent intent) {
    }
}
2)订阅感兴趣的广播Intent,订阅方法有两种:
-使用代码进行订阅
IntentFilter filter = new IntentFilter("android.provider.Telephony.SMS_RECEIVED");
IncomingSMSReceiver receiver = new IncomingSMSReceiver();
registerReceiver(receiver, filter);
-在AndroidManifest.xml文件中的<application>节点里进行订阅:
<receiver android:name=".IncomingSMSReceiver">
    <intent-filter>
         <action android:name="android.provider.Telephony.SMS_RECEIVED"/>
    </intent-filter>
</receiver>
3)接收电池电量变化广播Intent
-<action android:name="android.intent.action.BATTERY_CHANGED"/>
4)接收 开机启动广播Intent
-<action android:name="android.intent.action.BOOT_COMPLETED"/>
总结:
--广播接收者是用在异步接收广 播意图的.
--就是一个意图,可以被多地方接收.
--可以利用广播接收者窃听短信
--当系统收到短信时,会发出一个action 名称为android.provider.Telephony.SMS_RECEIVED的广播Intent,该Intent存放了接收到的短信内容,使 用名称“pdus”即可从Intent中获取短信内容。
--通常一个BroadcastReceiver对象的生命周期不超过5秒
 
7.服务
1)继承 Service类:public class SMSService extends Service { }
2)在 AndroidManifest.xml文件中的<application>节点里对服务进行配置:
<service android:name=".SMSService" />
总结:
--服务一般没有用户操作界面,它运行于系统中不容易被用户发觉
--服务不能自己运行

Android性能优化】Android 息屏超自动延长机制:ScreenUndimDetector 源码级解析 本文基于 AOSP Android 16 源码,以 `ScreenUndimDetector` 为核心,深度解析 Android 的"息屏超自动延长"机制——当用户在屏幕变暗后又手动调亮若干次,系统会自动持有一个临唤醒锁把屏幕留一会儿。文中完整还原 `POLICY_DIM → POLICY_BRIGHT` 的状态跃迁检测、`mUndimCounter` 连续变亮计数与 `mMaxDurationBetweenUndimsMillis` 间隔重置逻辑。 阅读详情

相关推荐

Android性能优化】Android App 冻结与内存压缩:CachedAppOptimizer 源码级解析

本文基于 AOSP Android 16 源码,以 `CachedAppOptimizer` 为核心,深度解析 Android 对"后台缓存应用"的两大治理手段——**进程冻结(Freezer)**与**内存压缩(Compaction)**。文中完整还原冻结的 debounce 去抖动机制、`mEarliestFreezableTime` 的最早可冻结刻算法、粘性冻结(Sticky Freeze)的语义,以及解冻必须"先解 binder 再解进程"的顺序奥义。

weixin_44081096的博客 124

传智播客activity教学视频

传智播客activity教学视频,高清,

文件上传漏洞-极核靶场(二)

利用BP抓包,在内嵌浏览器中打开Pass-11关卡网页,选择好文件。开启拦截,点击上传,抓包,发送到Repeater。本地phpstudy php版本5.3.29。例如:pass-11。

荒的博客 52

1.传智播客_Activiti工作流视频

传智播客_Activiti工作流视频传智播客_Activiti工作流视频传智播客_Activiti工作流视频传智播客_Activiti工作流视频传智播客_Activiti工作流视频传智播客_Activiti工作流视频

工作流 activity 视频教程 + redis 视频教程 百度网盘分享地址

云盘下载都没有密码,直接下载,解压有密码:chongxiangmengxiangjiaoyu, 解压完成后就可以看,包括教程教案、源码、解说图片等... activity 视频教程: http://pan.baidu.com/s/1hsd7PmW redis视频教程: http://pan.baidu.com/s/1dEWSvhZ -------------...

愿我如星君如月 ... 夜夜流光相皎洁 ... 1万+

Android 组件化 路由跳转(上)

1.简介 官方对于Activity的介绍:(连接:http://androiddoc.qiniudn.com/guide/components/activities.html) Activity是一个应用程序组件,它提供了一个屏幕,用户可以通过该屏幕进行交互,以便做一些事情,比如拨打电话、拍照、发送电子邮件或查看地图。每个活动都有一个窗口来绘制它的用户界面。窗口通常会填充屏幕,但可能...

听海的博客 1234

传智播客Android(2)-页面布局控制器Activity

这也是传说中的黎活明老师的课程,该课程网上有免费视频下载。之前提到的巴巴运动网项目就是黎活明老师一个人一手开发的(巴巴运动网在线首页),以前是传智播客的必授课程,现在改为Android开发课程,还是黎老师授课。Android开发课程视频因为考虑到学员就业竞争力培训机构之间竞争力的问题,暂不对外公布,想学习Android 3G开发的话欢迎来传智播客亲自聆听,而且传智播客现在特别推出了为期一周的An

那一抹云 2119

全面剖析Activiti-全集,高手速成原来这么简单

成都传智播客——全面剖析Activity全集: 课程介绍: Activiti是Tom Baeyens团队离开JBoss之后,加入Alfresco公司的全新产品。Activiti的前身是JBPM4,继承了jbpm4的所有优点,同将其发扬光大。Activiti底层的API与Jbpm4的API相似程序也达60%以上,特别是service提供的接口,都是在Jbpm4上提供扩展,这样使得熟悉j

cdczbk的专栏 2445

成都传智播客公开课,将activiti进行到底

成都传智播客公开课     课程介绍:     Activiti是Tom Baeyens团队离开JBoss之后,加入Alfresco公司的全新产品。Activiti的前身是JBPM4,继承了jbpm4的所有优点,同将其发扬光大。Activiti底层的API与Jbpm4的API相似程序也达60%以上,特别是service提供的接口,都是在Jbpm4上提供扩展,这样使得熟悉jbpm4的开发

ITsource 1816

防御引擎绕过方法

防御引擎基于PHP-Parser解析AST,通过“找标签—找节点—查参数”三步检测危险代码。绕过方法包括:利用函数名大小写、未文档化别名、use function重命名;通过类继承或匿名类伪装反射类;用splat运算符折叠参数列表;插入控制字符触发解析器异常;以及使用非标准标签(如<script language="php">)绕过解析。这些手段均针对检测流程的任一环节进行欺骗或破坏,实现隐蔽执行。

xuehan5205的博客 141

Android 开发中,requestWindowFeature(Window.FEATURE_NO_TITLE); 对于隐藏默认的紫色的标题栏失效

Android 开发中,requestWindowFeature(Window.FEATURE_NO_TITLE); 对于隐藏默认的紫色的标题栏失效

weixin_52173250的博客 77

飞牛 NAS 远程访问实战:星空组网连接 Mac 与安卓,从 Compose 部署到 5G 验证

在 Mac 上装好飞牛虚拟机之后,通过局域网地址打开管理后台很方便。但换成手机移动数据,这个内网地址就不能照搬了。怎样让手机在外面也能访问这台 NAS?这次我用星空组网完成了一次实际接入:飞牛通过 Docker Compose 运行客户端,Mac 安装桌面客户端,安卓手机使用独立成员账号连接,最后在关闭 Wi-Fi 的情况下,通过 5G 打开飞牛登录页面。

稻草人 2万+

Android Compose 开发,使用 ConstraintLayout,但是引入的是旧的 ConstraintLayout

Android Compose 开发,使用 ConstraintLayout,但是引入的是旧的 ConstraintLayout

weixin_52173250的博客 60

Android Automotive

Android for Cars 中用于在地图上叠加内容(如列表)的模板,内容通常以叠加层形式渲染在地图图块之上,地图可见区域稳定区域会根据内容自动调整。

201

Android 踩坑:同一个按钮,第一次有反应,第二次没反应

当页面通过replace()切换后,虽对象引用仍在,但生命周期已终结,回调注册被注销,导致结果“静默丢失”。修复关键在于避免页面销毁——改用add+hide/show叠放式切换,确保页面常驻、回调持续有效。核心教训:“对象活着”≠“可用”,复用实例需警惕生命周期状态与注册机制的匹配。

mmsx990的博客 112

Android 编译命令对比

特点: 特点: 特点: 速度对比 建议 修改范围 推荐命令 单个文件 或 单个模块 跨模块 不确定影响范围 (保守) 白话: 是"重做整桌菜", 是"只重做这一道菜"。局部修改用 快得

HZero 196

Android native端 堆栈打印

4. 在mk或者bp文件里连接so库 ,这两个 libcutils libutils。1.进入对应的cpp文件里,放开下列注释,然后改成1。3.在想要打堆栈的地方增加。

v_3483608762的博客 14
上一篇: 传智播客--3G开发之利用HttpURLConnection对象和Internet交互(非常重要)
下一篇: 传智播客--网上支付之易宝支付接入规范
getclass
博客等级 码龄17年 53粉丝 72原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值