永发信息网

android 页面跳转时,怎么把日期数据传输到另一个界面

答案:3  悬赏:80  手机版
解决时间 2021-02-23 19:36
android 页面跳转时,怎么把日期数据传输到另一个界面
最佳答案
跳转前activity: intent().putExtra("date", new Date().getTime());
跳转后activity: Date date = new Date(getIntent().getLongExtra("date", 0));

另外一种就是转换成字符串
全部回答
在activity或者组件之前传递信息时,一般采用intent绑定bundle的方式传值,但在使用过程中需要注意的是不要用bundle传递大容量数据: 在做项目的过程中,需要将听写界面的听写结果信息传递到听写记录界面供显示用,但是由于传递的数据量过大导致程序anr,甚至直接报异常(传递的信息里面有bitmap转换成的byte数组、每一个词组的拼音、词语、语音信息),经过分析发现是由于bundle不能传递大容量的数据信息,在stackoverflow里面查阅发现有同行遇到类似的问题: (1)“the size limit of intent is still pretty low in jelly bean, which is somewhat lower than 1mb (around 90k), so you should always be cautious about your data length, even if your application targets only latest android versions.” (2)“as per my experience (sometime ago), you are able to put up to 1mb of data in a bundleencapsulated inside intent. i think, this restriction was valid up till froyo or gingerbread.” 所以在通过bundle传递数据时只能传递较小的数据信息,对于在不同组件之间需要传递大容量数据的情况时,有几种替代方式可以解决不能用bundle传递这些数据的问题: 方法一:将需要传递的数据写在临时文件或者数据库中,再跳转到另外一个组件的时候再去读取这些数据信息,这种处理方式会由于读写文件较为耗时导致程序运行效率较低; 方法二:将需要传递的数据信息封装在一个静态的类中(注意当前组件和要跳转到的组件必须属于同一个进程,因为进程之间才能够共享数据),在当前组件中为类设置内容,然后再跳转到的组件中去取,这种处理方式效率很高,但是会破坏程序的独立性。 具体采用哪种替代方式取决于具体的情况,本人建议采取第二种处理方式,因为这样会大大提高程序的运行效率,至于程序的独立性,看你怎么去封装这个类了。
Activity转跳的时候,可以用Intent来传递一些参数。 Intent是一种运行时绑定(run-time binding)机制,它能在程序运行过程中连接两个不同的组件。通过Intent,你的程序可以向Android表达某种请求或者意愿,Android会根据意愿的内容选择适当的组件来完成请求。比如,有一个Activity希望打开网页浏览器查看某一网页的内容,那么这个Activity只需要发出WEB_SEARCH_ACTION给Android,Android就会根据Intent的请求内容,查询各组件注册时声明的IntentFilter,找到网页浏览器的Activity来浏览网页。 Android的三个基本组件——Activity,Service和Broadcast Receiver——都是通过Intent机制激活的,不同类型的组件有不同的传递Intent方式: 1. 要激活一个新的Activity,或者让一个现有的Activity做新的操作,可以通过调用Context.startActivity()或者Activity.startActivityForResult()方法。 2. 要启动一个新的Service,或者向一个已有的Service传递新的指令,调用Context.startService()方法或者调用Context.bindService()方法将调用此方法的上下文对象与Service绑定。 3. Context.sendBroadcast()、Context.sendOrderBroadcast()、Context.sendStickBroadcast()这三个方法可以发送Broadcast Intent。发送之后,所有已注册的并且拥有与之相匹配IntentFilter的BroadcastReceiver就会被激活。 4. Intent一旦发出,Android都会准确找到相匹配的一个或多个Activity,Service或者BroadcastReceiver作响应。所以,不同类型的Intent消息不会出现重叠,即Broadcast的Intent消息只会发送给BroadcastReceiver,而决不会发送给Activity或者Service。由startActivity()传递的消息也只会发给Activity,由startService()传递的Intent只会发送给Service。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
当一个有家室的女人肯在你面前流泪,这说明什
如何快速学习营销方法
一个是、数除以0.25,所得的商是原数的()倍
丰椰炖品怎么去啊,有知道地址的么
上海浦东新区有英业达电子厂不 ? 它的位置在
托福送分代码
联想惠普戴尔在哪里啊,我有事要去这个地方
先安未受邪之地属于A.治病求本B.未病先防C.既
植然堂养生会馆13部地址在什么地方,想过去办
非法贩卖他人信息的行为A. 不属于违法行为,
造梦西游3青龙剑怎么得 在哪得
广发车主信用卡金卡额度高不高?怎么才可以提
【与书有关的名言】有关书的名人名言100句
为什么我的手脚从小就很容易出汗,冬天,夏天都
智骏科贸在什么地方啊,我要过去处理事情
推荐资讯
大话西游2的BB变色的火神女娲3转了!现在要怎
某地区进行学龄儿童流脑疫苗接种率调查,首先
一个男生回复其他人都很快,就回复我的很慢,
请问,还是附魔问题,六级裁缝付的闪避是加多少
益顺健的沙棘能量油为什么使用后身上感觉很凉
敏爱尚屋·炒饭·炸串·卷饼地址有知道的么?
如果我发现一批宝藏,上缴给国家后,我还能得
六月去云南,丽江那边时间合适吗?
兔子的奔跑速度约为70千米1小时,t小时奔跑多
【咖啡豆种植】咖啡适宜种在那些地方?澳大利
35-40平米用多大电视?
如图,梯形ABCD中,AD∥BC,DE∥AB交BC于点E
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?