ios+android+次留,边做iOS边学Android(三):Activity生命周期+通信
边做iOS边学Android(一):新建一个project
边做iOS边学Android(二):认识几个常用的控件
趁着不忙赶紧多写点,鬼知道后面又有什么需求要忙...
这次就看一下Activity的生命周期,以及不同Activity之间的通信吧。
开始:
1 新建一个项目,ActivityLifeCyclePractice。然后在MainActivity里添加一些生命周期的方法,Activity的生命周期方法有onCreate、onStart、onRestart、onResume、onPause、onStop、onDestroy。
1.1 创建时:onCreate(viewDidLoad)、onStart(viewWillAppear?)、onResume(viewDidAppear?),在onResume时是前台可交互状态。
1.2 进入后台,调用onPause:Activity不在栈顶,但是栈顶的Activity半透明或者不覆盖全屏;onStop:不在栈顶,被完全覆盖,成员信息保留,不执行代码。
1.3 从后台进入前台,调用onRestart、onStart、onResume。
1.4 应用销毁,调用onPause、onStop、onDestroy。
public static final String TAG = "MainActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.d(TAG,"onCreate");
}
@Override
protected void onRestart(){
super.onRestart();
Log.d(TAG,"onRestart");
}
@Override
protected void onStart(){
super.onStart();
Log.d(TAG,"onStart");
}
@Override
protected void onResume(){
super.onResume();
Log.d(TAG,"onResume");
}
@Override
protected void onPause(){
super.onPause();
Log.d(TAG,"onPause");
}
@Override
protected void onStop(){
super.onStop();
Log.d(TAG,"onStop");
}
@Override
protected void onDestroy(){
super.onDestroy();
Log.d(TAG,"onDestroy");
}
Log.d就是打印debug级别的日志,.d可以改,看日志等级了。2个参数,第一个是筛选用的字符串,后面的就是打印的内容。在底部有个logcat,展开以后就是这样。跑起来,模拟器底下的back按钮会销毁当前的Activity。
three_Log.jpeg
2 接下来看一下Activity之间的传值
2.1 再创建一个NormalActivity,在layout下新建一个normal_layout,layout里新加一个TextView,代码就不贴了。
2.2 在manifest里注册这个Activity,之前老忘。不用多想,跟main的Activity同级的啦(都是Activity嘛)。
* 2.3 在NormalActivity的onCreate里添加setContentView(R.layout. normal_layout);
* 2.4 我们是从mainActivity跳到NormalActivity里,所以在main上加个按钮(第二回里面有说咋加 )。点击事件什么的也都写好,然后在点击事件里:
3 使用Intent启动、传值
3.1 Intent是一个好东西。它可以启动Activity,启动Service,启动Broadcast。(中间一个不知道干嘛的,总会知道的,第三个就是通知嘛...)
3.2 使用Intent启动Activity,可以分为显示跟隐式创建,显式的简单些:
3.2.1 喏,就是下面这样,在按钮的点击里加上就可以跳过去了。之所以说是显式是因为目标活动很明显摆在那了。
Intent intent = new Intent(当前Activity.this, 目标Activity.class);
startActivity(intent);
* 3.2.2 隐式就麻烦一些,第一篇里边说过我们的main的Activity有个,隐式创建也要用到这个,就是在manifest里对应的Activity标签内部加一个筛选。里边可以有3种标签、、。
action只能有一个,category可以有多个。action的name自己定,category就是这个值了(没深究,没有category会
ios+android+次留,边做iOS边学Android(三):Activity生命周期+通信相关推荐
- Android开发知识(十三):再次理清Activcity各个生命周期应该做的事情
文章目录 问题1:什么情况下Activity只调用onPause不调用onStop? 问题2:onPause().onStop()方法有什么区别?保存数据到底放在哪个好? 问题3:调用了finish( ...
- Android Ams对于Activity生命周期的管理
分析Activity的生命周期管理,我觉得应该先看下面两篇关于Activity的官方文档: 了解 Activity 生命周期 处理 Activity 状态更改 里面有下面一段话,比较简洁的说出了Act ...
- Android 插件化原理解析——Activity生命周期管理
之前的 Android插件化原理解析 系列文章揭开了Hook机制的神秘面纱,现在我们手握倚天屠龙,那么如何通过这种技术完成插件化方案呢?具体来说,插件中的Activity,Service等组件如何在A ...
- Android apk动态加载机制的研究(二):资源加载和activity生命周期管理
转载请注明出处:http://blog.csdn.net/singwhatiwanna/article/details/23387079 (来自singwhatiwanna的csdn博客) 前言 为了 ...
- 【Android】Activity生命周期
转载至:http://blog.csdn.net/liuhe688/article/details/6733407 子曰:溫故而知新,可以為師矣.<論語> 学习技术也一样,对于技术文档或者 ...
- android代理生命周期,了解 Activity 生命周期
当用户浏览.退出和返回到您的应用时,您应用中的 在生命周期回调方法中,您可以声明用户离开和再次进入 Activity 时 Activity 的行为方式.例如,如果您正构建流媒体视频播放器,当用户切换至 ...
- Android doc |Getting Started|部分 转载 --管理Activity生命周期
原文 https://developer.android.com/training/basics/activity-lifecycle/index.html 原文被部分改动 管理Activity生命周 ...
- Activity生命周期Android,横屏切换不重新创建Activity, Activity的四种launchMode
Activity生命周期 1.启动Activity:系统会先调用onCreate方法,然后调用onStart方法,最后调用onResume,Activity进入运行状态. 2.当前Activity被其 ...
- android基础 [超级详细android Activity组件解析(Activity综述,Activity生命周期,Activity启动--携带参数启动)]
1 章节目录 2 Android Activity综述 2.1 Activity怎么用 2.2 layout - 界面布局 2.3 Java - 控制界面 2.4 AndroidManifest.xm ...
最新文章
- Github Pages页面重定向到新网址,实现域名跳转
- 重新定义“物联网” GreenPeak助力合作伙伴构建智能家居
- SpringMVC中的 --- 异常处理
- vs mfc数据与控件绑定错了_如何进行数据趋势分析?VS扩展工具——C1迷你图控件了解一下...
- SAP 全球产品营销总监:产品营销驱动 B2B 企业爆发式增长的 6 大要点
- 实体类(VO,DO,DTO)的划分
- ERROR: Could not find a version that satisfies the requirement requests (from v ersions: none)
- 网络流(最大流) HDU 1565 方格取数(1) HDU 1569 方格取数(2)
- Linux下的用户切换命令
- 华为云3大体系化防护实践,保障金融业云上数据安全
- CCF201609-4 交通规划(100分)
- 风变Python3---if条件相关的学习
- MCS:连续随机变量——Erlang分布
- S7-1200做智能IO设备
- 想学一门技术,学java有前途吗?
- 程序设计框架图和框架加载流程
- html table 斜线表头,Table表格加斜线表头
- 服务器网站兼容不正常,升级为IE11后兼容模式设置,部分网站无法正常浏览,兼容模式仍然无法正常访问部分网站的解决办法...
- DSI3协议 CRM模式通信讲解
- Spark worker内存不足导致任务失败,报错Likely due to containers exceeding thresholds, or network issues