按下分享按钮时,"分享通过"菜单仅在4秒后出现

时间:2016-08-24 08:35:15

标签: android performance share

当我在我的应用程序中按分享按钮时,"刮胡子"菜单在4秒后出现。当我从Gallery应用程序或Whatsapp执行相同的操作时,它会在半秒钟内出现。我猜这与我的旧智能手机无关,因为在其他地方它的工作速度非常快。我错过了什么?

这是代码:

        shareButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            mTracker.send(new HitBuilders.EventBuilder()
                    .setCategory("Action")
                    .setAction("Share photo")
                    .build());
            Uri bmpUri = getLocalBitmapUri(imageView);
            if (bmpUri != null) {
                ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
                ClipData clip = ClipData.newPlainText(EditView.getText(), EditView.getText());
                clipboard.setPrimaryClip(clip);

                Intent shareIntent = new Intent();
                shareIntent.setAction(Intent.ACTION_SEND);
                shareIntent.putExtra(Intent.EXTRA_STREAM, bmpUri);
                shareIntent.setType("image/*");
                startActivity(Intent.createChooser(shareIntent, "Share Image"));
            }else{
                Toast.makeText(getApplicationContext(), "You need to upload a photo first", Toast.LENGTH_SHORT).show();
            }
        }
    });

1 个答案:

答案 0 :(得分:0)

你的问题将是getLocalBitmapUri我在其他地方看过这个功能,它在主线程上做了很多工作,例如加载图像,压缩图像然后将图像保存到手机存储。这取决于文件大小,这可能需要一些时间。

如果这是设计的,那么您可以显示像这样的ProgressDialog

final ProgressDialog dialog = ProgressDialog.show(getActivity(), null, "Please wait whilst we load your image", true);

然后用

关闭对话框
dialog.dismiss();
在你打电话之前

startActivity(Intent.createChooser(shareIntent, "Share Image"));