本文整理汇总了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;
}