當前位置: 首頁>>代碼示例>>Java>>正文


Java Parcelable.writeToParcel方法代碼示例

本文整理匯總了Java中android.os.Parcelable.writeToParcel方法的典型用法代碼示例。如果您正苦於以下問題:Java Parcelable.writeToParcel方法的具體用法?Java Parcelable.writeToParcel怎麽用?Java Parcelable.writeToParcel使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在android.os.Parcelable的用法示例。


在下文中一共展示了Parcelable.writeToParcel方法的9個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: marshall

import android.os.Parcelable; //導入方法依賴的package包/類
public static byte[] marshall(Parcelable parceable) {
    Parcel parcel = Parcel.obtain();
    parceable.writeToParcel(parcel, 0);
    byte[] bytes = parcel.marshall();
    parcel.recycle();
    return bytes;
}
 
開發者ID:philipwhiuk,項目名稱:q-mail,代碼行數:8,代碼來源:ParcelableUtil.java

示例2: parcelable2Bytes

import android.os.Parcelable; //導入方法依賴的package包/類
private static byte[] parcelable2Bytes(final Parcelable parcelable) {
    if (parcelable == null) return null;
    Parcel parcel = Parcel.obtain();
    parcelable.writeToParcel(parcel, 0);
    byte[] bytes = parcel.marshall();
    parcel.recycle();
    return bytes;
}
 
開發者ID:weiwenqiang,項目名稱:GitHub,代碼行數:9,代碼來源:CacheUtils.java

示例3: serialize

import android.os.Parcelable; //導入方法依賴的package包/類
public static byte[] serialize(Parcelable parceable) {
  Parcel parcel = Parcel.obtain();
  parceable.writeToParcel(parcel, 0);
  byte[] bytes = parcel.marshall();
  parcel.recycle();
  return bytes;
}
 
開發者ID:XecureIT,項目名稱:PeSanKita-android,代碼行數:8,代碼來源:ParcelUtil.java

示例4: parcelable2Bytes

import android.os.Parcelable; //導入方法依賴的package包/類
private static byte[] parcelable2Bytes(Parcelable parcelable) {
    if (parcelable == null) return null;
    Parcel parcel = Parcel.obtain();
    parcelable.writeToParcel(parcel, 0);
    byte[] bytes = parcel.marshall();
    parcel.recycle();
    return bytes;
}
 
開發者ID:pan2yong22,項目名稱:AndroidUtilCode-master,代碼行數:9,代碼來源:CacheUtils.java

示例5: parcelable2Bytes

import android.os.Parcelable; //導入方法依賴的package包/類
private static byte[] parcelable2Bytes(final Parcelable parcelable) {
    if (parcelable == null) {
        return null;
    }
    Parcel parcel = Parcel.obtain();
    parcelable.writeToParcel(parcel, 0);
    byte[] bytes = parcel.marshall();
    parcel.recycle();
    return bytes;
}
 
開發者ID:imliujun,項目名稱:LJFramework,代碼行數:11,代碼來源:CacheUtils.java

示例6: cloneScanResult

import android.os.Parcelable; //導入方法依賴的package包/類
private static ScanResult cloneScanResult(Parcelable scanResult) {
    Parcel p = Parcel.obtain();
    scanResult.writeToParcel(p, 0);
    p.setDataPosition(0);
    ScanResult newScanResult = Reflect.on(scanResult).field("CREATOR").call("createFromParcel", p).get();
    p.recycle();
    return newScanResult;
}
 
開發者ID:coding-dream,項目名稱:TPlayer,代碼行數:9,代碼來源:WifiManagerStub.java

示例7: parcelableWriteToParcel

import android.os.Parcelable; //導入方法依賴的package包/類
public static Parcel parcelableWriteToParcel(Parcelable instance) {
    Parcel parcel = Parcel.obtain();
    instance.writeToParcel(parcel, 0);
    return parcel;
}
 
開發者ID:weiwenqiang,項目名稱:GitHub,代碼行數:6,代碼來源:ParcelUtils.java

示例8: getProgressInfo

import android.os.Parcelable; //導入方法依賴的package包/類
private ProgressInfo getProgressInfo(String id, Notification n) {
    if (id == null || n == null) return null;

    ProgressInfo pInfo = new ProgressInfo(id, false, 0, 0);

    // We have to extract the information from the content view
    RemoteViews views = n.bigContentView;
    if (views == null) views = n.contentView;
    if (views == null) return pInfo;

    try {
        @SuppressWarnings("unchecked")
        List<Parcelable> actions = (List<Parcelable>) 
            XposedHelpers.getObjectField(views, "mActions");
        if (actions == null) return pInfo;

        for (Parcelable p : actions) {
            Parcel parcel = Parcel.obtain();
            p.writeToParcel(parcel, 0);
            parcel.setDataPosition(0);

            // The tag tells which type of action it is (2 is ReflectionAction)
            int tag = parcel.readInt();
            if (tag != 2)  {
                parcel.recycle();
                continue;
            }

            parcel.readInt(); // skip View ID
            String methodName = parcel.readString();
            if ("setMax".equals(methodName)) {
                parcel.readInt(); // skip type value
                pInfo.max = parcel.readInt();
                if (DEBUG) log("getProgressInfo: total=" + pInfo.max);
            } else if ("setProgress".equals(methodName)) {
                parcel.readInt(); // skip type value
                pInfo.progress = parcel.readInt();
                pInfo.hasProgressBar = true;
                if (DEBUG) log("getProgressInfo: current=" + pInfo.progress);
            }

            parcel.recycle();
        }
    } catch (Throwable  t) {
        XposedBridge.log(t);
    }

    return pInfo;
}
 
開發者ID:WrBug,項目名稱:GravityBox,代碼行數:50,代碼來源:ProgressBarController.java

示例9: createFromParcelable

import android.os.Parcelable; //導入方法依賴的package包/類
/**
 * 根據Parcelable對象,構造出適合在任何地方使用的Parcel對象
 * 該方法可杜絕ClassCastException異常
 * <p>
 * 注意:
 * 用完必須調用p.recycle方法
 * <p>
 * Before:
 * <pre class="prettyprint">\
 * // ERROR: Might be "ClassCastException" Error
 * XXX x = intent.getParcelableExtra("XXX");
 * </pre>
 * <p>
 * After:
 * <pre class="prettyprint">
 * Parcelable pa = intent.getParcelableExtra("XXX");
 * Parcel p = ParcelUtils.createFromParcelable(pa);
 * <p>
 * // Create a new XXX object to avoid "ClassCastException"
 * XXX x = new XXX(p);
 * </pre>
 * <p>
 * 原因:
 * 即使包名、類名完全相同,若ClassLoader對象不同,則仍會拋出類型轉換異常
 * 因此需要將其“重新”生成一份,等於用不同的ClassLoader生成兩個對象,自然避免該問題
 * <p>
 * 常見於BroadcastReceiver中的Bundle,係統在判斷源進程和目標進程一致時,會“透傳”Bundle過來,
 * 故就算設置了setClassLoader,也不會做unparcel,自然也就會導致ClassCastException了
 *
 * @param pa 要構造的Parcelable對象
 * @return 可被構造函數使用的Parcel對象
 */
public static Parcel createFromParcelable(Parcelable pa) {
    if (pa == null) {
        return null;
    }

    Parcel p = Parcel.obtain();
    pa.writeToParcel(p, 0);
    p.setDataPosition(0);

    return p;
}
 
開發者ID:wangyupeng1-iri,項目名稱:springreplugin,代碼行數:44,代碼來源:ParcelUtils.java


注:本文中的android.os.Parcelable.writeToParcel方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。