android开发中,Bundle跟Intent的联系和区别
android开发中,Bundle和Intent的联系和区别?
在一个Activity中,有一个编辑框,一个Button按钮,
当我点击按钮时,会读取编辑框里的字符串,然后跳转到另外一个Activity,在该Activity中显示传递的字符串
在按钮监听响应函数中,代码如下:
public void onClick(View arg0)
{
String info=etName.getText().toString();
Bundle bundle = new Bundle();//(1)
bundle.putString("name", info);//(2)
Intent intent=new Intent(MainActivity.this,BundleDemo1.class);
intent.putExtras(bundle);//(3)
finish();
startActivity(intent);
}
如果我不要(1)、(2)两句代码,把(3)改为intent.putExtra("name", info); 照样能跳转到我想要的Activity,
那为什么还需要使用Bundle呢?是不是多此一举?
另外,finish();这句话是干什么用的?
关于Bundle具体使用方法我还没弄明白,求大神指导。。。
------解决方案--------------------
1、执行intent.putExtra("name", info)等同于(1)(2),你可以看成是putExtra是一个封装后的方法
2、finish()是关闭(从其task踢出)当前Activity
------解决方案--------------------
Bundle只是一个信息的载体 将内部的内容以键值对组织
Intent负责Activity之间的交互 自己是带有一个Bundle的
Intent.putExtras(Bundle bundle)直接将Intent的内部Bundle设置为参数里的bundle
Intent.getExtras()直接可以获取Intent带有的Bundle
intent.putExtra(key, value)
和
Bundle bundle = intent.getExtras();
bundle.putXXX(key, value);
intent.putExtras(bundle);
是等价的
intent.getXXXExtra(key)
和
Bundle bundle = intent.getExtras();
bundle .getXXX(key);
是等价的(XXX代表数据/对象类型 String boolean 什么的)
finish()是退出当前Activity
你用Intent启动新Activity后调用finish()
会导致调用finish()的那个Activity退出(虽然它已经在后台运行, onStop了)
但你看到的只是新Activity启动了
当你在新Activity中按返回键的时候 新的Activity也退出了
这样你的Application 已经没有活动的Activity
Application也就自动退出
------解决方案--------------------
在一个Activity中,有一个编辑框,一个Button按钮,
当我点击按钮时,会读取编辑框里的字符串,然后跳转到另外一个Activity,在该Activity中显示传递的字符串
在按钮监听响应函数中,代码如下:
public void onClick(View arg0)
{
String info=etName.getText().toString();
Bundle bundle = new Bundle();//(1)
bundle.putString("name", info);//(2)
Intent intent=new Intent(MainActivity.this,BundleDemo1.class);
intent.putExtras(bundle);//(3)
finish();
startActivity(intent);
}
如果我不要(1)、(2)两句代码,把(3)改为intent.putExtra("name", info); 照样能跳转到我想要的Activity,
那为什么还需要使用Bundle呢?是不是多此一举?
另外,finish();这句话是干什么用的?
关于Bundle具体使用方法我还没弄明白,求大神指导。。。
Android开发
String
Intent
Bundle
------解决方案--------------------
1、执行intent.putExtra("name", info)等同于(1)(2),你可以看成是putExtra是一个封装后的方法
2、finish()是关闭(从其task踢出)当前Activity
------解决方案--------------------
Bundle只是一个信息的载体 将内部的内容以键值对组织
Intent负责Activity之间的交互 自己是带有一个Bundle的
Intent.putExtras(Bundle bundle)直接将Intent的内部Bundle设置为参数里的bundle
Intent.getExtras()直接可以获取Intent带有的Bundle
intent.putExtra(key, value)
和
Bundle bundle = intent.getExtras();
bundle.putXXX(key, value);
intent.putExtras(bundle);
是等价的
intent.getXXXExtra(key)
和
Bundle bundle = intent.getExtras();
bundle .getXXX(key);
是等价的(XXX代表数据/对象类型 String boolean 什么的)
finish()是退出当前Activity
你用Intent启动新Activity后调用finish()
会导致调用finish()的那个Activity退出(虽然它已经在后台运行, onStop了)
但你看到的只是新Activity启动了
当你在新Activity中按返回键的时候 新的Activity也退出了
这样你的Application 已经没有活动的Activity
Application也就自动退出
------解决方案--------------------