当我在我的应用程序中按分享按钮时,"刮胡子"菜单在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();
}
}
});
答案 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"));