Java 仅当活动完成时播放成功声音

Java 仅当活动完成时播放成功声音,java,android,Java,Android,我已经创建了一个应用程序,你可以与他们共享图像。当共享过程完成时,我设置了一个通知声音。但是,如果我按下取消/返回按钮,声音仍会播放。 在我下面的代码中,我设置了一个共享按钮,一旦你点击它,你就可以通过android的基本共享应用程序共享图像的位图。 如何将声音设置为仅在共享完成时播放。 谢谢 萨菲 这是我的密码: shareBtn = findViewById(R.id.shareButton); shareBtn.setOnClickListener(new View.OnClick

我已经创建了一个应用程序,你可以与他们共享图像。当共享过程完成时,我设置了一个通知声音。但是,如果我按下取消/返回按钮,声音仍会播放。 在我下面的代码中,我设置了一个共享按钮,一旦你点击它,你就可以通过android的基本共享应用程序共享图像的位图。 如何将声音设置为仅在共享完成时播放。 谢谢 萨菲

这是我的密码:

shareBtn = findViewById(R.id.shareButton);
    shareBtn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            v.startAnimation(animTranslate);
            shareDigitalCard();
        }
    });

private void shareDigitalCard() {

    if (ActivityCompat.checkSelfPermission(MyMenu.this,
            android.Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
        try {
            makeStorageRequest();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }else {
        Bitmap viewBmp = Bitmap.createBitmap(mPager.getWidth(), 
        mPager.getHeight(), Bitmap.Config.ARGB_8888);
       viewBmp.setDensity(mPager.getResources().getDisplayMetrics().densityDpi);
        Canvas canvas = new Canvas(viewBmp);
        //mPager.layout(0, 0 , mPager.getLayoutParams().width, mPager.getLayoutParams().height);
        mPager.draw(canvas);

        path = String.valueOf(saveTempBitmap(viewBmp));

        shareImage(path);
    }
}

private void shareImage(String file) {
    StrictMode.VmPolicy.Builder builder = new StrictMode.VmPolicy.Builder();
    StrictMode.setVmPolicy(builder.build());

    Intent share = new Intent(Intent.ACTION_SEND);

    // If you want to share a png image only, you can do:
    // setType("image/png"); OR for jpeg: setType("image/jpeg");
    share.setType("image/*");

    File imageFileToShare = new File(file);

    Uri uri = Uri.fromFile(imageFileToShare);
    share.putExtra(Intent.EXTRA_STREAM, uri);

    try {
        startActivityForResult(Intent.createChooser(share, "Share Image!"),123);

    } catch (Exception e) {
        e.printStackTrace();
    }
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == 123){
        if (isSoundEnable) {
            MediaPlayer player = null;
            if (player == null) {
                player = MediaPlayer.create(this, R.raw.success);
                final MediaPlayer finalPlayer = player;
                player.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
                    @Override
                    public void onCompletion(MediaPlayer mp) {
                        stopPlayer(finalPlayer);
                    }
                });
            }
            player.start();
        }

    } else {
        Toast.makeText(this, "An Error Has Occured !", Toast.LENGTH_SHORT).show();
    }
}

您无法获取此事件。共享过程取决于其他应用程序,您没有任何控制或结果。你所知道的只是你向一个特定的应用程序发送了一个意图,但它的作用完全取决于它