作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的照片应用中有一个 fragment 。当用户编辑照片时,
protected class CompressBitmapImageTask extends AsyncTask<Void, Void, byte[]>
{
private Bitmap editedImageBitmap;
private BitmapDownscale bitmapDownscale;
CompressBitmapImageTask(Bitmap editedImageBitmap, BitmapDownscale bitmapDownscale)
{
this.editedImageBitmap = editedImageBitmap;
this.bitmapDownscale = bitmapDownscale;
}
@Override
protected byte[] doInBackground(Void... params)
{
BitmapDownscale.BitmapDownscaleResult result = bitmapDownscale.downscaleFromBitmap(editedBitmap, true);
return result.bitmapBytes;
}
@Override
protected void onPostExecute(byte[] bytes)
{
onEditImageComplete(bytes);
}
}
protected void onEditImageComplete(@Nullable byte[] editedBitmapData)
{
if (editedBitmapData != null)
photoModel.editedBitmapData = editedBitmapData;
getParentFragmentManager().popBackStack();
}
调用 getParentFragmentManager() 时出现异常。我提到了一个相关的帖子,
Fragment MyFragment not attached to Activity
isAdded()
将解决我的问题。
最佳答案
在进一步阅读 Fragment Manager 上的 Android 文档和这个答案后 Fragment MyFragment not attached to Activity ,我相信isAdded()检查是通过fragmentManager确认fragment是否与activity关联的方式。一开始看方法的定义很困惑,
/**
* Return true if the fragment is currently added to its activity.
*/
final public boolean isAdded() {
return mHost != null && mAdded;
}
protected void onEditImageComplete(@Nullable byte[] editedBitmapData)
{
if (editedBitmapData != null)
photoModel.editedBitmapData = editedBitmapData;
if (isAdded())
getParentFragmentManager().popBackStack();
} ```
关于android - fragment 与 getParentFragmentManager 中的 fragment 管理器异常无关,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60982029/
我的照片应用中有一个 fragment 。当用户编辑照片时, 我启动一个 AsyncTask 在后台压缩图像,这将返回压缩的图像字节。 在 postExecute() 中,我调用了一个 editCom
我是一名优秀的程序员,十分优秀!