通过意图共享位图不会清除以前的位图

Sharing bitmap through intent doesn't clear previous bitmap

我正在尝试通过 intent 共享位图,方法是单击我在 activity 中创建的共享按钮。第一次,它正确地共享了位图,但是如果我再次单击我的共享按钮并尝试共享另一个位图,它会共享之前的位图。

这里 qrCodeFrame 是我的 FrameLayout,我正在动态更改布局颜色,在更改之后我正在创建此布局的位图,然后通过意图共享它。

private void share() {

    qrCodeFrame.setDrawingCacheEnabled(true);
    qrCodeFrame.buildDrawingCache();
    Bitmap bitap = qrCodeFrame.getDrawingCache();
    String pathofBmp = MediaStore.Images.Media.insertImage(getActivity().getContentResolver(), bitap, "QR code", "Scan this QR code");
    Uri bmpUri = Uri.parse(pathofBmp);
    final Intent emailIntent1 = new Intent(android.content.Intent.ACTION_SEND);
    emailIntent1.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    emailIntent1.putExtra(Intent.EXTRA_STREAM, bmpUri);
    emailIntent1.putExtra(Intent.EXTRA_SUBJECT, "Any Subject");
    emailIntent1.putExtra(Intent.EXTRA_TEXT, SharedPreference.getFacebookDataObtainedFromServer(getActivity()).getUserName() + " invites you to join.");
    emailIntent1.setType("image/png");
    startActivity(emailIntent1);
}

终于找到答案了

我正在更改布局并通过意图共享该布局的位图。我在没有使用以下两件事的情况下一次又一次地进行这个过程。

qrCodeFrame.invalidate(); qrCodeFrame.requestLayout();

所以不幸的是我正在制作以前布局的位图而不是刷新布局的位图。