小编Din*_*101的帖子

何时调用 Parcel.recycle()?

我必须和IBinders 和Parcels 一起工作。我已经浏览了所有IBinderBinderParcel文档,但找不到任何关于何时调用的内容Parcel.recycle(我也从未读过任何说 aparcel必须被回收的内容)。我见过类似下面的例子:

void someMethod(IBinder binder) {
  final int code = // ...
  final Parcel data = Parcel.obtain()
  final Parcel reply = Parcel.obtain()

  try {
    binder.transact(code, data, reply, 0);
  } finally {
    data.recycle();
    reply.recycle();
  }
}
Run Code Online (Sandbox Code Playgroud)

但令我困惑的是,在每个例子中,我都没有看到这一点:

class MyBinder extends Binder {
  @Override
  public boolean onTransact(int code, Parcel data, Parcel reply, int flags) {

    try {
      // do things...
    } finally {
      data.recycle(); …
Run Code Online (Sandbox Code Playgroud)

java android parcel android-binder

5
推荐指数
1
解决办法
294
查看次数

标签 统计

android ×1

android-binder ×1

java ×1

parcel ×1