文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>What is the difference between a Bundle

What is the difference between a Bundle

时间:2010-04-13  来源:nearfuture_qinyaomin

Question:
Quote:
What is the difference between a Bundle and a Parcel and a Message?
What are the interactions between each. A detailed explanation would
go a long way to explaining the whole of the android.os package for
me.


Answer:
Quote:
Hello!

A Bundle is functionally equivalent to a standard Map. The reason we didn't
just use a Map is because in the contexts where Bundle is used, the only
things that are legal to put into it are primitives like Strings, ints, and
so on. Because the standard Map API lets you insert arbitrary Objects, this
would allow developers to put data into the Map that the system can't
actually support, which would lead to weird, non-intuitive application
errors. Bundle was created to replace Map with a typesafe container that
makes it explicitly clear that it only supports primitives.

A Parcel is similar to a Bundle, but is more sophisticated and can support
more complex serialization of classes. Applications can implement the
Parcelable interface to define application-specific classes that can be
passed around, particularly when using Services. Parcelables can be more
sophisticated than Bundles, but this comes at a cost of significantly higher
overhead.

Bundle and Parcel are both data serialization mechanisms, and for the most
part both are used when application code is passing data across processes.
However, because Parcel is much higher overhead that Bundle, Bundles are
used in the more common places like the onCreate method, where overhead must
be as low as possible. Parcels are most commonly used to allow applications
to define Services with logical APIs that can use application-meaningful
classes as method arguments and return values. If we required Bundle there,
it would result in really clunky APIs. You should in general still keep
your Service APIs as simple as possible, because primitives will serialize
more efficiently than custom Parcelable classes.

The Message class is very different. A Message is really just a way for an
application to send messages between threads, and is not related to data
serialization. Since accesses to Views must be single-threaded, the
MessageHandler and related Message classes are commonly used to make it
easier to pass messages between threads.

Hope that helps!

- Dan

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载