【Android归纳】intent小结
来源:互联网 发布:java编程九九乘法表 编辑:程序博客网 时间:2024/05/17 07:13
- 前言
- 1显示启动传递数据
- 2隐式启动
- 3使用Bundle传递参数
- 4以singleTask模式启动Activityintent为空的问题
- 5其它相关
- 前言
前言
intent是Android程序中各组件之间进行交互的一种重要方式,它不仅可以指明当前组件想要执行的动作,还可以在不同组件之间传递数据,一般被用户启动Activity,启动Service以及发送广播等场景
1、显示启动(传递数据)
使用intent从ActivityOne跳转到ActivityTwo
在ActivityOne中的代码如下:
Intent intent = new Intent();intent.putExtra("param1", param1);intent.putExtra("param2", param2);intent.setClass(ActivityOne.this, ActivityTwo.class);startActivity(intent);
在ActivityTwo中的代码如下:
//从ActivityOne中跳转到ActivityTwo中利用Intent传递数据。//获取IntentIntent intent = getIntent();String param1 = intent.getStringExtra("param1");String param2 = intent.getStringExtra("param2");
2、隐式启动
随便举一个例子,更多相关内容不再赘述
例如启动打开网页
//访问网页。Uri uri = Uri.parse("http://www.baidu.com");Intent intent = new Intent(Intent.ACTION_VIEW,uri);startActivity(intent);
3、使用Bundle传递参数
在ActivityOne中的代码如下:
//使用Bundle传递参数Intent intent = new Intent();Bundle bundle = new Bundle();bundle.putString("param1",param1);intent.putExtras(bundle);intent.setClass(ActivityOne.this, ActivityTwo.class);startActivity(intent);
在ActivityTwo中的代码如下:
Bundle bundle = this.getIntent().getExtras();String param1 = myBundle.getString("param1");
4、以singleTask模式启动Activity,intent为空的问题
场景:Activity的启动模式设为:
android:launchMode="singleTask"
多次启动该Activity,又不想一直新建,调试发现intent为空。
原因:
- activity通过intent传递数据的时候,如果activity未启动,那么在这个刚启动的activity里通过getIntent()会获取到这个intent的数据.
- 如果要启动的activity是已经存在的,这时候通过getInten()方法获取到的intent是已启动的activity的原始intent.换句话说intent的数据没有更新.
解决方案:
- 如果要每次获取intent传来的新数据就需要在onNewIntent(Intent intent)方法里调用setIntent(intent)设置这个传来的最新的intent
代码示例:
@Override protected void onNewIntent(Intent intent) { super.onNewIntent(intent); //关键代码 setIntent(intent); //此时就可以接收最新的参数param1 String param1 = intent.getStringExtra("param1"); }
提示:
- 如果activity的启动模式是standard,那么每次都重新创建一个新的activity.这样intent也是最新的.就不用通过setIntent来更新这个intent
- 【Android归纳决】Activity启动模式
5、其它相关
- 更多隐式intent的用法
- 通过startActivityResult、onActivityResult、以及setResult实现数据的双向传递
1 0
- 【Android归纳】intent小结
- android之Intent小结
- Android Intent 小结
- Android系统 广播Intent 小结
- Android Intent传递对象小结
- Intent使用归纳
- Intent使用归纳
- Intent使用归纳
- android中的Intent的作用小结
- Android开发--Intent的用法小结
- 初学Android:Activity与Intent小结
- Intent小结
- Intent小结
- intent小结
- Intent 小结
- 变量属性归纳小结
- python函数小结归纳
- android通过Intent跳转到添加联系人界面的小结
- 使用Qt库时出现winsock2.h和windos.h包含顺序错误
- 自定义控件支持qss
- 学习途中的风景 2016年 2月
- 书那么廉价,却饱含着作者无价的知识。
- RadioButton的使用
- 【Android归纳】intent小结
- 利用机器学习进行恶意代码分类
- 京东价格监控软件开发技术探讨九:C#判断京东登录是否需要验证码
- Windows 编程之WinMain
- 【转】mysql发展历程 各分支版本溯源
- php中的$_GET全局变量,通过URL传递参数
- android APK加固篇-2.动态加载dex及dex的方法的调用
- matlab环境中 将cell数据 写入到text文件
- hdu 1532(最大流)