背景
很多时候,我们希望允许用户在安卓应用上分享一些东西。
这可以使用下一个函数来完成:
public static Intent prepareSharingIntent() { final List<Intent> targetedShareIntents = new ArrayList<Intent>(); final Intent shareIntent = new Intent(Intent.ACTION_SEND); final Intent smsIntent = new Intent(Intent.ACTION_VIEW); targetedShareIntents.add(smsIntent); shareIntent.setType("text/plain"); smsIntent.setType("vnd.android-dir/mms-sms"); final String invitationMessage = "check out my App!"; smsIntent.putExtra(Intent.EXTRA_TEXT, invitationMessage); shareIntent.putExtra(Intent.EXTRA_TEXT, invitationMessage); shareIntent.putExtra("sms_body", invitationMessage); smsIntent.putExtra("sms_body", invitationMessage); shareIntent.putExtra(Intent.EXTRA_SUBJECT, "Check out this app!"); smsIntent.putExtra(Intent.EXTRA_SUBJECT, "Check out this app!"); shareIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, targetedShareIntents.toArray(new Parcelable[] {})); final Intent chooserIntent = Intent.createChooser(shareIntent, "Share using..."); chooserIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_NO_HISTORY | Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET); return chooserIntent; }
问题
一些用户(比如我)有很多可以处理共享意图的应用程序。
这意味着有时从我点击分享内容到显示对话框之间会有很长的延迟(在某些情况下可能是一秒甚至更长),所以这是一种非常不受欢迎的行为。
我有耐心,但也许有些用户会因此认为该应用程序“滞后”。
事实上,我注意到这个问题出现在许多应用程序(包括 Play 商店应用程序)上。用户没有得到设备当前执行某些操作来显示对话框的反馈。
问题
为了使它看起来更流畅,或者至少显示一些进度对话框,直到显示真正的对话框,可以做些什么?