我有一个活动,允许我用相机拍摄图像,我想将此图像作为Intent extra发送到父活动。但是,如果我实际上尝试将图像添加到意图中,那么finish()
调用似乎永远不会做任何事情,我的活动永远不会关闭。
以下是我的一些代码:
public void onPictureTaken(byte[] imageData, Camera c)
{
if (imageData != null) {
// Send the result as a byte array
Intent intent = new Intent();
intent.putExtra("imagedata", imageData);
setResult(RESULT_OK, intent);
finish();
}
}
奇怪的是,如果我注释掉putExtra()
电话,那么一切正常(当然没有图像),我的活动关闭,我点击父母的onActivityResult()
回调。但是如果我离开线路,则活动永远不会关闭,回调永远不会触发。
我已经尝试将更多琐碎的东西放在附加内容中,比如字符串,这一切都完美无缺。允许putExtra()
采用字节数组,我甚至尝试将其作为Bitmap包装并发送,但它也不起作用。我唯一能想到的是,我不应该把那么大的东西传递给Intent,在这种情况下我想我只是尝试将它写入文件。只是写入文件应该比传递字节数组引用要慢,这就是我试图这样做的原因。
有什么想法吗?在此先感谢:)
电话:三星Galaxy S. API级别:7
答案 0 :(得分:2)
您不应将图像数据包含在Intent附加内容中。有关说明,请参阅this thread。简而言之,尽量减少你的Intent附加功能。
我建议将你的照片存储到SD卡中,并将路径传递给你的意图中的这个文件。
答案 1 :(得分:0)
试试这段代码
public void quit() {
int pid = android.os.Process.myPid();
android.os.Process.killProcess(pid);
System.exit(0);
}
并使用quit();
调用它