android开发之数据共享(参数传递)
来源:互联网 发布:网络对时软件 编辑:程序博客网 时间:2024/04/29 01:54
一、android的生命周期
android的生命周期可以理解为activity的生命周期,其实一个activity即使一个手机的交互页面,activity的生命周期可以用七个方法表述,activity启动后以栈的形式保存,先打开的activity在栈低,后打开的在栈顶,所以后打开的先出来。
onCreate(Bundle savedInstanceState), 初始化界面
onStart()启动
onRestart() 挂起之后重新启动
onResume() 展示
onPause(); 挂起
onStop(); 停止
onDestory(); 销毁
下图对activity的生命周期做了一个详细的展示,主要有三个过程
完整的流程为:
onCreate --》onStart()-->>onResume()-->>onPause()-->>onStop()-->>onDestory()
activity被从可见到不可见的过程
onResume()-->>onPause()-->>onStop()
不可见到可见的过程
onStop()-->>onRestart()-->>onStart()
二、android中数据的传递
1、使用全局变量传递数据,声明一个java类 Test.java,继承android.app.Application;然后再该类中声明的属性即可作为全局变量用,属性设置对应get、set方法,然后实现onCreate()方法初始化这些变量,最后在AndroidManifest.xml的application节点中声明android:name="类路径+全名"即可实现在app启动的时候加载该类,实现全局变量的目的
2、剪切板的使用
得到剪切板的句柄:
ClipboardManager clibboardManager = getSystemService(Context.CLIBBOARD_SERVICE);
clibboardManager .setText(String s); //设置变量到剪切板
同样得到句柄之后clibboardManager .getText(String s) 即可得到参数值
当利用剪切板传递对象的时候,要求对象是可序列化的对象,impelements Serializable接口。属性有get、set方法以及无惨构造函数,传递的原理就是将对象以流的形式转成string类型的参数,然后接收参数的时候再将string类型的数据反序列化成java对象即可
android.util.Base64提供了一些列将其他数据类型和base64字串相互转换的方法,如encodeToString(),decode();
将对象转成base64串
MyData myData = new MyData();ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();ObjectOutputStream objectOutputStream = new ObjectOutputStream(byteArrayOutputStream);objectOutputStream.writeObject(myData);String str = Base64.encodeToString(byteArrayOutputStream.toByteArray(), Base64.DEFAULT);
base64串还原对象
byte[] base64_array = Base64.decode(str, Base64.DEFAULT);
3、使用intent传递数据
Intent intent = new Intent(this, TargetActivity.class);
intent.putExtra("str", value);
intent.putIntExtra("name", intValue);
TargetActivity在onCreate方法里可以接收这些参数
intent = getIntent();
intent.getExtra("name");
intent.getIntExtra("name", 0);
intent本身对传递对象作了实现
Intent intent = new Intent(this, TargetActivity.class);
Mydata mydata = new MyData();
Bundle mBundle = new Bundle();
mBundle .putSerializable("name", myData);
intent,putExtras(mBundle );
- android开发之数据共享(参数传递)
- 【Android 开发】:数据存储之 SharedPreference 共享参数
- android开发之-数据共享(SharedPreferences )
- Android 数据存储之 共享参数 SharedPreferences
- 微信小程序开发之数据存储 参数传递 数据缓存
- 微信小程序开发之数据存储 参数传递 数据缓存
- Android应用开发之(数据共享) -actionbar
- android开发之 Activity之间数据传递
- Android 开发之Activity之间传递数据
- Android 开发之activity之间传递数据
- android 开发之activity之间传递数据
- android 开发之activity之间传递数据
- android 开发之activity之间传递数据
- Android开发之Intent数据的传递
- android数据存储--共享参数(sharedPreferences)
- 数据共享之SharedPreference共享参数文件
- Revit开发之共享参数
- Android开发之Fragment传递参数的几种方法
- Python函数修饰符的初步理解
- Java中的计算器算法
- 虚函实现原理
- Protocol Buffer Basics: C++
- 番茄工作法总结
- android开发之数据共享(参数传递)
- win7 下ffmpeg release 版本崩溃问题
- x264编码延时研究
- Android中用Application类实现全局数据变量的使用
- Intent 详解
- hibernate缓存策略
- 再谈线程
- UVA - 10720 Graph Construction 公式+贪心
- Myeclipse Find Bugs 插件安装使用说明