GeoQuiz项目总结——第五章

2017-03-22  本文已影响0人  圈圈_勿忘初心

Activity数据传递

1.Intent extra

intent.putExtra(key,value)

key——String类型

value——多种基本数据类型(或者序列化的对象)

获取:getXXXExtra(),XXX是数据类型(序列化的对象不包含在内)。

2.startActivityForResult(Intent intent, int requestCode)

requestCode:请求代码,用于一个Activity启动多个不同类型Activity,且需要判断区分消息给原Activity。

设置返回结果:setResult(int resultCode)。

resultCode:Activity.RESULT_OK、Activity.RESULT_CANCELED,根据不同的resultCode,原Activity可以判断采取不同的操作。

注:也可以不调用setResult(),如不需区分附加在intent上的结果或其它信息,可以让OS发送默认的resultCode。如果Activity是以调用startActivityForResult()启动的,resultCode总是会返回给原Activity。

譬如:在没有调用setResult的情况下,被startActivityForResult()启动的Activity后退的时候,原Activity收到的resultCode就是Activity.RESULT_CANCELED;如果有调用,则收到setResult()里面设置的resultCode。

ActivityManager维护着一个非特定应用独享的回退栈,所有应用的Activity都共享这个回退栈。

两个Activity之间的通信

即使是APP内部的Activity通信,也需要通过操作系统的ActivityManager进行。

Intent对象传递数据是通过Extra数据类型传递,其结构是一种key-value结构

上一篇 下一篇

猜你喜欢

热点阅读