前言
最近的项目当中遇到一个需求,就是要把Bitmap从Fragment传输到Activity当中,但是我用Intent和Bundle传输的时候,遇到了JavaBinder: !!! FAILED BINDER TRANSACTION !!! (parcel size = 8295408)
。看到这个我就知道我的bitmap,太大了传输不过去直接炸了。我就想在既然传输不过去,我就知道缓存到一个地方,在其他地方调用就好了。想到就去做直接撸代码…
传输Bitmap的解决方案
1.自定义Application,代码如下
import android.app.Application;
import android.graphics.Bitmap;
public class ApplicationUtil extends Application {
private static ApplicationUtil instance;
public ApplicationUtil() {
}
public static ApplicationUtil getInstance() {
return instance;
}
private Bitmap mBitmap;
@Override
public void onCreate() {
super.onCreate();
instance = this;
}
public Bitmap getmBitmap() {
return mBitmap;
}
public void setmBitmap(Bitmap mBitmap) {
this.mBitmap = mBitmap;
}
}
2.一定要在AndroidManifest.xml调用
<application
android:name=".utils.ApplicationUtil"
...>
</application>
撸完代码之后发现这个传输Bitmap的方案是可行的,于是赶紧跑来发表博客,希望对Android开发的小伙伴有帮助。