- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我正在尝试从服务下载图像并将其显示在 Activity 中,但我不断收到
java binder FAILED BINDER TRANSACTION
这是我的服务代码
public class DownloadImageService extends Service {
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
new LoadImageAsync().execute(intent.getStringExtra("type"));
return Service.START_NOT_STICKY;
}
@Override
public IBinder onBind(Intent intent) {
return null;
}
private class LoadImageAsync extends AsyncTask<String, Void, String> {
byte[] compressedImage;
Bitmap bmp;
String img;
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected String doInBackground(String... params) {
try {
URL url = new URL(imgUrl);
bmp = BitmapFactory.decodeStream(url.openConnection().getInputStream());
compressedImage = CompressBitmap.compresssImage(bmp);
img = Base64.encodeToString(compressedImage, Base64.DEFAULT);
} catch (IOException e) {
compressedImage = null;
bmp = null;
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
if (compressedImage != null) {
Intent i = new Intent(getApplicationContext(), OtherCampaignActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
i.putExtra("image_byte", img);
startActivity(i);
}
stopService(new Intent(getApplicationContext(), DownloadImageService.class));
}
}
}
压缩功能
public static byte[] compresssImage(Bitmap b) {
ByteArrayOutputStream stream = new ByteArrayOutputStream();
b.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] compressedByteArray = stream.toByteArray();
return compressedByteArray;
}
我的 Activity
public class OtherActivity extends AppCompatActivity {
private ImageView iv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_other);
iv = (ImageView) findViewById(R.id.imageViewCam);
byte[] byteArray = Base64.decode(getIntent().getStringExtra("image_byte"), Base64.DEFAULT);
// byte[] byteArray = getIntent().getExtras().getByteArray("image_byte");
Bitmap bitmap = BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length);
iv.setImageBitmap(bitmap);
}
@Override
public void onBackPressed() {
super.onBackPressed();
finish();
}
}
代码中有什么问题。 Activity 未开始。
应用程序没有崩溃。我只在 logcat 中得到这个:
06-30 12:38:36.800 29992-29992/com.vt.enit E/JavaBinder﹕ !!! FAILED BINDER TRANSACTION !!!
我猜这可能是由于位图太大。
最佳答案
创建图像缓存解决了我的问题
private LruCache<String, Bitmap> mMemoryCache;
@Override
protected void onCreate(Bundle savedInstanceState) {
...
// Get max available VM memory, exceeding this amount will throw an
// OutOfMemory exception. Stored in kilobytes as LruCache takes an
// int in its constructor.
final int maxMemory = (int) (Runtime.getRuntime().maxMemory() / 1024);
// Use 1/8th of the available memory for this memory cache.
final int cacheSize = maxMemory / 8;
mMemoryCache = new LruCache<String, Bitmap>(cacheSize) {
@Override
protected int sizeOf(String key, Bitmap bitmap) {
// The cache size will be measured in kilobytes rather than
// number of items.
return bitmap.getByteCount() / 1024;
}
};
...
}
public void addBitmapToMemoryCache(String key, Bitmap bitmap) {
if (getBitmapFromMemCache(key) == null) {
mMemoryCache.put(key, bitmap);
}
}
public Bitmap getBitmapFromMemCache(String key) {
return mMemoryCache.get(key);
}
关于Android java binder 失败 BINDER TRANSACTION?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31131640/
我有一个自定义模型绑定(bind)器,它会为进入操作方法的特定参数调用: public override ActionResult MyAction(int someData, [ModelBinde
我正在尝试从服务下载图像并将其显示在 Activity 中,但我不断收到 java binder FAILED BINDER TRANSACTION 这是我的服务代码 public class Do
我有下一个问题,我正在创建自定义适配器的 ListView ,我正在使用异步任务从 JSON url(文本和图像 url)下载适配器的数据,然后我将适配器设置为列表,我使用毕加索库下载图像,现在我的应
我正在尝试将一个 UI 活页夹小部件包含到另一个小部件中:我正在使用 UI 活页夹构建一个表单,并希望包含一个也使用 UI 活页夹完成的精美按钮。有谁知道如何做到这一点? 谢谢! 最佳答案 是的,这是
我收到这个错误: Attempt to invoke interface method 'android.os.IBinder com.mediatek.anrappmanager.IFramewor
我想问一下有什么区别 bindConstant().annotatedWith(Names.named("keepAliveInterval")).to(60); 和 bind(Integer.TYP
我的应用程序已编译,然后在我的手机中安装 apk 时弹出窗口询问我新安装将卸载以前的版本,然后安装新版本。我点击了确定,但过了一会儿它显示了这个错误:- 01/14 10:43:22: Launchi
谁能告诉我这是什么意思? 一切都很好,我没有改变任何东西,只是发生了,这是 Binder 565 中的代码: try { res = onTransact(code, data, reply,
我的项目 application.properties 发出警告。说 'spring.cloud.stream.kafka.binder.jaas.loginModule' is an unknown
我读了一篇关于 android 的 Binder 的文章。文章说进程交换共享内存中的对象引用并且它比编码和解码更有效......但实际上IPC机制中是否存在编码和解码?我有点困惑... 谁能解释绑定(
在与 Oleg 讨论期间对问题进行了大量编辑 我正在尝试在 Spring Cloud Stream 中实现 BigQuery 的绑定(bind)器。 完整的应用程序代码可在GitHub上获取. 到目前
我有一个 Android Java 服务,它通过 Binder (AIDL) 与 native 进程交互。 我看到该服务列在“adb shell 服务列表”下。我也可以使用“adb shell ser
我创建了一个在单独进程中运行的服务 我读过,当服务作为单独的进程进行时,它是在一个单独的线程上而不是在主线程上。当我在服务中执行 HTTP 请求时,出现异常:Thread forbids Http
Android ContentProvider 使用“绑定(bind)线程”池来处理 RPC,例如 query、insert 和 call。在我的 ContentProvider 实现中,我正在执行一
我正在尝试阅读Android源代码来了解binder,但我无法找到Android系统架构中描述的binder驱动程序部分。知道 Binder 代码位于 Android 源代码中的什么位置吗? 最佳答案
08-27 22:17:20.980: INFO/AndroidRuntime(299): 注意:线程 'Binder Thread #3' 的附加失败这是 LogCat 信息,请帮助我。 最佳答案
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我已经用我的界面定义了一个 AIDL 文件。像这样: interface IResPlugin { int discoverType(); Map onClick( in int id
我正在做一个项目,我们向 android 系统添加了一些非标准的安全功能,但我在调整 Binder 时遇到了一些严重的问题。 有没有人对Binder系统有很深的了解,知道Binder为什么会“阻塞”一
我想我追踪到了内存泄漏,并想确认我认为 Android 的 Binder 是如何实现的。在这种情况下,我有一个服务和一个 Activity ,每个都在自己的进程中。我创建了一个 AIDL,它允许我通过
我是一名优秀的程序员,十分优秀!