Android之基础系列(一)

Android入门之显式Intent和隐式Intent

一丶显式Intent

Intent intent=new Intent(FirstActivity.this,SecondActivity.class);
startActivity(intent);

创建显式Intent需要传入两个参数
1.上下文对象
2.需要启动的Activity的.class文件

该Intent的意图很明显所以叫显式Intent
并且在AndroidManifest.xml 文件中不需要对 SecondActivity做出改变

<activity android:name=".SecondActivity"> </activity>

二丶隐式Intent
在这里插入图片描述
创建隐式Intent需要传入一个参数
1.包名+Action的字符串即可

并且在AndroidManifest.xml 文件中需要对 SecondActivity做出改变
在这里插入图片描述
1.需要声明一下action
2.需要声明一下category (设置成了默认模式)
3.个人自定义的 category

从java的代码中可以看到添加的代码
intent.addCategory(“com.example.activitytest.MY-CATEGORY”);
并且注意 一个Intent只能对应一个Action 不过可以对应多个category

关于隐式Intent的用法举例
1.action为Intent.ACTION_VIEW (Android系统内置的动作 来调用系统的浏览器)
2.Uri.parse(“http://www.baidu.com”) 将网址解析成Uri对象

Intent intent =new Intent(Intent.ACTION_VIEW);
                       intent.setData(Uri.parse("http://www.baidu.com"));
                       startActivity(intent);

设置一个可以和浏览器同样响应的Intent
在这里插入图片描述

这个则是实现打电话的功能(只是发出Intent,然后让系统调用有能够接收该Intent 的应用程序而已)

Intent intent = new Intent(Intent.ACTION_DIAL);
                      intent.setData(Uri.parse("tel:10086"));
                      startActivity(intent);

三丶Intent之间的互相传值(数据之间的传递)
先讨论向下传值

在第一个Activity里
1.使用显式Intent
2.使用putExtra方法 (第一个参数是键值 第二个参数是真正传递的数据)
3.启动Activity 发送intent
在这里插入图片描述

在第二个Activity里
1.getIntent() 得到用于启动该Activity的intent (也就是当前的Intent)
2.得到键值为extra_data里所含的数据
3.打印日志
在这里插入图片描述

最终结果则是
第一个活动中的数据 传到了第二个活动中 并且打印

接着讨论向上传值
1.要想回调数据 必须要用
startActivityForResult(intent,1);来启动该活动 并且发送Intent
在这里插入图片描述

2.在新启动的这个SecondActivity中
创建新的Intent 然后附带数据"Hello FirstActivity" 其键值(名称为)data_return
要想回调数据 必须要使用setResult(RESULT_OK,intent);此方法
第一个参数 为向上个活动返回处理结果 第二个参数为带有数据的Intent
finish(); 销毁数据
在这里插入图片描述

3.回调后原活动FirstActivity 必须要调用此方法
onActivityResult 第一个参数 就是前面注册的请求码 requestCode
第二个参数 处理结果 RESULT_OK
第三个参数 带有数据的Intent
在这里插入图片描述

过程:
1.第一个活动 启动活动并且发送可以回调的Intent 并且加上唯一的请求码
2.然后启动的新活动 创建新的Intent 在往新的Intent里添加数据 然后得到该数据的处理结果 然后终结该方法
3.由于结束了第二个活动 返回到了第一个活动 第一个活动要接收该结果必须调用的方法,通过请求码 以及判断处理结果 来处理这个带有数据的Intent

为了使Back也会回调数据 加入如下代码
在这里插入图片描述

Android的活动生命周期

活动被回收了怎么办(在使用过程中 系统很有可能会把上一个活动给停止掉 然后回来时则会发现输入的数据没了 原因是调用onCreate了 而不是onRestart 为了保证数据不丢失 使用一些方法)
使用bundle 然后自行处理
在这里插入图片描述
这是在onCreate方法里写的 用来恢复数据
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_41910103/article/details/82869066
今日推荐