当前位置: 首页>>代码示例>>Java>>正文


Java Parcel.unmarshall方法代码示例

本文整理汇总了Java中android.os.Parcel.unmarshall方法的典型用法代码示例。如果您正苦于以下问题:Java Parcel.unmarshall方法的具体用法?Java Parcel.unmarshall怎么用?Java Parcel.unmarshall使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在android.os.Parcel的用法示例。


在下文中一共展示了Parcel.unmarshall方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: readPackageCache

import android.os.Parcel; //导入方法依赖的package包/类
public static VPackage readPackageCache(String packageName) {
    Parcel p = Parcel.obtain();
    try {
        File cacheFile = VEnvironment.getPackageCacheFile(packageName);
        FileInputStream is = new FileInputStream(cacheFile);
        byte[] bytes = FileUtils.toByteArray(is);
        is.close();
        p.unmarshall(bytes, 0, bytes.length);
        p.setDataPosition(0);
        if (p.readInt() != 4) {
            throw new IllegalStateException("Invalid version.");
        }
        VPackage pkg = new VPackage(p);
        addOwner(pkg);
        return pkg;
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        p.recycle();
    }
    return null;
}
 
开发者ID:7763sea,项目名称:VirtualHook,代码行数:23,代码来源:PackageParserEx.java

示例2: parcelClone

import android.os.Parcel; //导入方法依赖的package包/类
public MasterSecret parcelClone() {
  Parcel thisParcel = Parcel.obtain();
  Parcel thatParcel = Parcel.obtain();
  byte[] bytes      = null;

  thisParcel.writeValue(this);
  bytes = thisParcel.marshall();

  thatParcel.unmarshall(bytes, 0, bytes.length);
  thatParcel.setDataPosition(0);

  MasterSecret that = (MasterSecret)thatParcel.readValue(MasterSecret.class.getClassLoader());

  thisParcel.recycle();
  thatParcel.recycle();

  return that;
}
 
开发者ID:XecureIT,项目名称:PeSanKita-android,代码行数:19,代码来源:MasterSecret.java

示例3: readSignature

import android.os.Parcel; //导入方法依赖的package包/类
public static void readSignature(VPackage pkg) {
    File signatureFile = VEnvironment.getSignatureFile(pkg.packageName);
    if (!signatureFile.exists()) {
        return;
    }
    Parcel p = Parcel.obtain();
    try {
        FileInputStream fis = new FileInputStream(signatureFile);
        byte[] bytes = FileUtils.toByteArray(fis);
        fis.close();
        p.unmarshall(bytes, 0, bytes.length);
        p.setDataPosition(0);
        pkg.mSignatures = p.createTypedArray(Signature.CREATOR);
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        p.recycle();
    }
}
 
开发者ID:7763sea,项目名称:VirtualHook,代码行数:20,代码来源:PackageParserEx.java

示例4: unmarshallParcelable

import android.os.Parcel; //导入方法依赖的package包/类
/**
 * Unmarshalls a parcelable's byte array into the object
 *
 * @param bytes the byte array
 * @param clazz the class
 * @param <T>   the type
 * @return the object
 */
@SuppressWarnings("unchecked")
public static <T extends Parcelable> T unmarshallParcelable(byte[] bytes, Class<T> clazz) {
    if (bytes == null) {
        return null;
    }
    Parcel parcel = Parcel.obtain();
    parcel.unmarshall(bytes, 0, bytes.length);
    parcel.setDataPosition(0);

    try {
        Parcelable.Creator<? extends Parcelable> creator = (Parcelable.Creator<? extends Parcelable>) clazz.getField("CREATOR").get(null);
        return (T) creator.createFromParcel(parcel);
    } catch (Exception e) {
        throw new BadParcelableException(e);
    } finally {
        parcel.recycle();
    }
}
 
开发者ID:hortonworks,项目名称:nifi-android-s2s,代码行数:27,代码来源:SerializationUtils.java

示例5: bytes2Parcelable

import android.os.Parcel; //导入方法依赖的package包/类
private static <T> T bytes2Parcelable(byte[] bytes, Parcelable.Creator<T> creator) {
    if (bytes == null) return null;
    Parcel parcel = Parcel.obtain();
    parcel.unmarshall(bytes, 0, bytes.length);
    parcel.setDataPosition(0);
    T result = creator.createFromParcel(parcel);
    parcel.recycle();
    return result;
}
 
开发者ID:angcyo,项目名称:RLibrary,代码行数:10,代码来源:CacheUtils.java

示例6: readJobs

import android.os.Parcel; //导入方法依赖的package包/类
private void readJobs() {
    File jobFile = VEnvironment.getJobConfigFile();
    if (!jobFile.exists()) {
        return;
    }
    Parcel p = Parcel.obtain();
    try {
        FileInputStream fis = new FileInputStream(jobFile);
        byte[] bytes = new byte[(int) jobFile.length()];
        int len = fis.read(bytes);
        fis.close();
        if (len != bytes.length) {
            throw new IOException("Unable to read job config.");
        }
        p.unmarshall(bytes, 0, bytes.length);
        p.setDataPosition(0);
        int version = p.readInt();
        if (version != JOB_FILE_VERSION) {
            throw new IOException("Bad version of job file: " + version);
        }
        if (!mJobStore.isEmpty()) {
            mJobStore.clear();
        }
        int count = p.readInt();
        for (int i = 0; i < count; i++) {
            JobId jobId = new JobId(p);
            JobConfig config = new JobConfig(p);
            mJobStore.put(jobId, config);
            mGlobalJobId = Math.max(mGlobalJobId, config.virtualJobId);
        }
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        p.recycle();
    }

}
 
开发者ID:coding-dream,项目名称:TPlayer,代码行数:38,代码来源:VJobSchedulerService.java

示例7: unmarshall

import android.os.Parcel; //导入方法依赖的package包/类
static <T> T unmarshall(byte[] array) {
    Parcel parcel = Parcel.obtain();
    parcel.unmarshall(array, 0, array.length);
    parcel.setDataPosition(0);
    Object value = parcel.readValue(CLASS_LOADER);
    parcel.recycle();
    return (T)value;
}
 
开发者ID:weiwenqiang,项目名称:GitHub,代码行数:9,代码来源:ParcelFn.java

示例8: bytes2Parcelable

import android.os.Parcel; //导入方法依赖的package包/类
private static <T> T bytes2Parcelable(final byte[] bytes, final Parcelable.Creator<T> creator) {
    if (bytes == null) return null;
    Parcel parcel = Parcel.obtain();
    parcel.unmarshall(bytes, 0, bytes.length);
    parcel.setDataPosition(0);
    T result = creator.createFromParcel(parcel);
    parcel.recycle();
    return result;
}
 
开发者ID:Wilshion,项目名称:HeadlineNews,代码行数:10,代码来源:CacheUtils.java

示例9: getPendingIntents

import android.os.Parcel; //导入方法依赖的package包/类
/**
 * Retreives all pending intents that have been saved
 *
 * @return the pending intents
 */
public List<PendingIntentWrapper> getPendingIntents() {
    List<PendingIntentWrapper> pendingIntents = new ArrayList<>();
    SQLiteDatabase readableDatabase = sqLiteOpenHelper.getReadableDatabase();
    try {
        Cursor cursor = readableDatabase.query(false, PENDING_INTENT_TABLE_NAME, new String[]{ID_COLUMN, PENDING_INTENT_REQUEST_CODE, CONTENT_COLUMN}, null, null, null, null, null, null);
        try {
            int idIndex = cursor.getColumnIndexOrThrow(ID_COLUMN);
            int requestCodeIndex = cursor.getColumnIndexOrThrow(PENDING_INTENT_REQUEST_CODE);
            int contentIndex = cursor.getColumnIndexOrThrow(CONTENT_COLUMN);
            while (cursor.moveToNext()) {
                Parcel parcel = Parcel.obtain();
                byte[] bytes = cursor.getBlob(contentIndex);
                parcel.unmarshall(bytes, 0, bytes.length);
                parcel.setDataPosition(0);
                int requestCode = cursor.getInt(requestCodeIndex);
                Intent intent = Intent.CREATOR.createFromParcel(parcel);
                pendingIntents.add(new PendingIntentWrapper(cursor.getLong(idIndex), PendingIntent.getBroadcast(context, requestCode, intent, PendingIntent.FLAG_NO_CREATE)));
            }
        } finally {
            cursor.close();
        }
    } finally {
        readableDatabase.close();
    }
    return pendingIntents;
}
 
开发者ID:hortonworks,项目名称:nifi-android-s2s,代码行数:32,代码来源:DemoAppDB.java

示例10: unwrap

import android.os.Parcel; //导入方法依赖的package包/类
private static BreventProtocol unwrap(byte[] bytes) {
    Parcel parcel = Parcel.obtain();
    parcel.unmarshall(bytes, 0, bytes.length);
    parcel.setDataPosition(0);
    parcel.readInt(); // skip version
    int action = parcel.readInt();
    parcel.setDataPosition(0);

    try {
        switch (action) {
            case STATUS_REQUEST:
                return new BreventRequest(parcel);
            case STATUS_RESPONSE:
                return new BreventResponse(parcel);
            case UPDATE_BREVENT:
                return new BreventPackages(parcel);
            case CONFIGURATION:
                return new BreventConfiguration(parcel);
            case UPDATE_PRIORITY:
                return new BreventPriority(parcel);
            case STATUS_NO_EVENT:
                return new BreventNoEvent(parcel);
            case OPS_KO:
                return BreventOpsKO.INSTANCE;
            case OPS_RESET:
                return new BreventOpsReset(parcel);
            case OPS_UPDATE:
                return new BreventOpsUpdate(parcel);
            case OPS_OK:
                return BreventOpsOK.INSTANCE;
            default:
                return null;
        }
    } finally {
        parcel.recycle();
    }
}
 
开发者ID:brevent,项目名称:Brevent,代码行数:38,代码来源:BreventProtocol.java

示例11: clone

import android.os.Parcel; //导入方法依赖的package包/类
public RecordFood clone() {
    Parcel parcel = Parcel.obtain();
    writeToParcel(parcel, 0);
    byte[] bytes = parcel.marshall();
    Parcel parcel2 = Parcel.obtain();
    parcel2.unmarshall(bytes, 0, bytes.length);
    parcel2.setDataPosition(0);
    return (RecordFood) CREATOR.createFromParcel(parcel2);
}
 
开发者ID:JackChan1999,项目名称:boohee_v5.6,代码行数:10,代码来源:RecordFood.java

示例12: bytes2Parcelable

import android.os.Parcel; //导入方法依赖的package包/类
private static <T> T bytes2Parcelable(final byte[] bytes, final Parcelable.Creator<T> creator) {
    if (bytes == null) {
        return null;
    }
    Parcel parcel = Parcel.obtain();
    parcel.unmarshall(bytes, 0, bytes.length);
    parcel.setDataPosition(0);
    T result = creator.createFromParcel(parcel);
    parcel.recycle();
    return result;
}
 
开发者ID:imliujun,项目名称:LJFramework,代码行数:12,代码来源:CacheUtils.java

示例13: read

import android.os.Parcel; //导入方法依赖的package包/类
public void read() {
    File file = mPersistenceFile;
    Parcel p = Parcel.obtain();
    try {
        FileInputStream fis = new FileInputStream(file);
        byte[] bytes = new byte[(int) file.length()];
        int len = fis.read(bytes);
        fis.close();
        if (len != bytes.length) {
            throw new IOException("Unable to read Persistence file.");
        }
        p.unmarshall(bytes, 0, bytes.length);
        p.setDataPosition(0);
        if (!verifyMagic(p)) {
            onPersistenceFileDamage();
            throw new IOException("Invalid persistence file.");
        }
        int fileVersion = p.readInt();
        int currentVersion = getCurrentVersion();
        if (fileVersion != getCurrentVersion()) {
            if (!onVersionConflict(fileVersion, currentVersion)) {
                throw new IOException("Unable to process the bad version persistence file.");
            }
        }
        readPersistenceData(p);
    } catch (Exception e) {
        if (!(e instanceof FileNotFoundException)) {
            e.printStackTrace();
        }
    } finally {
        p.recycle();
    }
}
 
开发者ID:7763sea,项目名称:VirtualHook,代码行数:34,代码来源:PersistenceLayer.java

示例14: unmarshall

import android.os.Parcel; //导入方法依赖的package包/类
private static Parcel unmarshall(byte[] bytes) {
    Parcel parcel = Parcel.obtain();
    parcel.unmarshall(bytes, 0, bytes.length);
    parcel.setDataPosition(0);
    return parcel;
}
 
开发者ID:philipwhiuk,项目名称:q-mail,代码行数:7,代码来源:ParcelableUtil.java

示例15: deserialize

import android.os.Parcel; //导入方法依赖的package包/类
public static Parcel deserialize(byte[] bytes) {
  Parcel parcel = Parcel.obtain();
  parcel.unmarshall(bytes, 0, bytes.length);
  parcel.setDataPosition(0);
  return parcel;
}
 
开发者ID:CableIM,项目名称:Cable-Android,代码行数:7,代码来源:ParcelUtil.java


注:本文中的android.os.Parcel.unmarshall方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。