android intent 的数据传递两种
2015-09-15 19:35
351 查看
在activity启动时能被人看见时就是启动完了onCreate(),onStart().onResume(),进入中间绿色的Activity running 中间了,点击返回键,就onPause(),onStop(),onDestroy().死亡了
onCreate() 创建完毕
onStart() 已经显示在屏幕,但没有焦点。
onResume()得到得到显示,可以控制
onPause()被挡住了 界面,
onStop()界面被关闭了,但是在后台还在偷偷运行
stop()后重新回到应用,就调用了onRestart()方法
Pause()后重新回到应用,会调用onResume()方法就可以;
onDestroy()被彻底清除了。
onCreate()来做 Activity创建时需要初始化资源,销毁时需要释放资源;或者播放器应用,在界面进入后台时需要自动暂停
onPause()和onStop()里可以写一些视频,切回桌面时暂停视频,界面不可见,切回来还可以继续播放。
App process killed 用于杀死应用进程的。 内存不足的时候会自动杀死最近打开的进程,保留新的,会杀死onStop
里面的,onStop里面要是没有了,就会杀死onPause暂停里的,一般不杀死前台的,
intent 传递数据:
用intent .putExtra适合传递少量数据,写起来比较方便;
用bundle方法,用于数据种类比较多的话,可以对种类做一个划分,把不同种类数据封装到一个budle对象里。
代码:主界面:第一个MainActivity
Intent intent =new Intent(MainActivity.this,SecondActivity.class);
intent.putString("大雨","lyz");
intent.putString("芙蓉姐姐","qwwq");
startActivity(intent);
第二个界面SecondActivity
private int nextInt;
Intent intent =getIntent();
String boyExtra=intent.getStringExtra("大雨");
String
girlExtra=intent.getStringExtra("芙蓉姐姐");
Random
mrRandom=new Random();
if("lyz".equals(boyExtra)&&"qwwq".equals(girlExtra)){
nextInt=99;
}else{
nextInt=mrRandom.nextInt(100);
}
Text mtv=(TextView)findViewById(R.id.tv_receive);
mtv.setText(boyExtra+"和"+girlExtra+"的姻缘值"+nextInt);
Bundle:
Bundle bd=new Bundle();
bd.putString("大雨", "lyz");
bd.putString("芙蓉姐姐", "qwwq");
intent.putExtras(bd);
startActivity(intent);
第二个界面
Intent intent = getIntent();
Bundle extras=intent.getExtras();//**********
String boyExtra = extras.getString("大雨");
String girlExtra = extras.getString("芙蓉姐姐");
Random mrRandom=new Random();
nextInt = mrRandom.nextInt(100);
TextView mtv = (TextView) findViewById(R.id.tv_receive);
mtv.setText(boyExtra+"和"+girlExtra+"的姻缘值"+nextInt);
onCreate() 创建完毕
onStart() 已经显示在屏幕,但没有焦点。
onResume()得到得到显示,可以控制
onPause()被挡住了 界面,
onStop()界面被关闭了,但是在后台还在偷偷运行
stop()后重新回到应用,就调用了onRestart()方法
Pause()后重新回到应用,会调用onResume()方法就可以;
onDestroy()被彻底清除了。
onCreate()来做 Activity创建时需要初始化资源,销毁时需要释放资源;或者播放器应用,在界面进入后台时需要自动暂停
onPause()和onStop()里可以写一些视频,切回桌面时暂停视频,界面不可见,切回来还可以继续播放。
App process killed 用于杀死应用进程的。 内存不足的时候会自动杀死最近打开的进程,保留新的,会杀死onStop
里面的,onStop里面要是没有了,就会杀死onPause暂停里的,一般不杀死前台的,
intent 传递数据:
用intent .putExtra适合传递少量数据,写起来比较方便;
用bundle方法,用于数据种类比较多的话,可以对种类做一个划分,把不同种类数据封装到一个budle对象里。
代码:主界面:第一个MainActivity
Intent intent =new Intent(MainActivity.this,SecondActivity.class);
intent.putString("大雨","lyz");
intent.putString("芙蓉姐姐","qwwq");
startActivity(intent);
第二个界面SecondActivity
private int nextInt;
Intent intent =getIntent();
String boyExtra=intent.getStringExtra("大雨");
String
girlExtra=intent.getStringExtra("芙蓉姐姐");
Random
mrRandom=new Random();
if("lyz".equals(boyExtra)&&"qwwq".equals(girlExtra)){
nextInt=99;
}else{
nextInt=mrRandom.nextInt(100);
}
Text mtv=(TextView)findViewById(R.id.tv_receive);
mtv.setText(boyExtra+"和"+girlExtra+"的姻缘值"+nextInt);
Bundle:
Bundle bd=new Bundle();
bd.putString("大雨", "lyz");
bd.putString("芙蓉姐姐", "qwwq");
intent.putExtras(bd);
startActivity(intent);
第二个界面
Intent intent = getIntent();
Bundle extras=intent.getExtras();//**********
String boyExtra = extras.getString("大雨");
String girlExtra = extras.getString("芙蓉姐姐");
Random mrRandom=new Random();
nextInt = mrRandom.nextInt(100);
TextView mtv = (TextView) findViewById(R.id.tv_receive);
mtv.setText(boyExtra+"和"+girlExtra+"的姻缘值"+nextInt);
相关文章推荐
- Android开发-通过USB实现ADB控制
- android textview自动换行问题
- Android项目工作区结构
- Android常用控件之SoundPool
- Android(java)学习笔记256:JNI之NDK的概念
- AndroidSDK环境配置
- android应用使用ant打包过程
- Android开发入门(初学)
- Android的Handler总结
- Android优秀开源项目(二)
- android studio 修改项目CVS账号工具修改不成功,手动修改文件太多
- Android的常用adb命令
- Android 读取清单文件<meta-data>元素的数据
- Android 读取清单文件<meta-data>元素的数据
- android中一个自定属性的xml错误
- android中的几个log的功能及作用
- android发送短信并监听插入收件箱的方法
- Android Ion 框架 文件下载
- Android画图Path的使用
- 一篇详细的 Android onTouch事件传递机制