本文整理匯總了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;
}
示例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;
}
示例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;
}
示例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;
}
示例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;
}
示例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;
}
示例7: parcelableWriteToParcel
import android.os.Parcelable; //導入方法依賴的package包/類
public static Parcel parcelableWriteToParcel(Parcelable instance) {
Parcel parcel = Parcel.obtain();
instance.writeToParcel(parcel, 0);
return parcel;
}
示例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;
}
示例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;
}