如何在使用Intent.createChooser()启动共享菜单时停止Activity重新加载?

时间:2015-02-04 17:04:35

标签: android android-intent android-webview android-sharing

我有一个WebView,页面底部有一个共享图标。

当用户按下图标时,它会启动一个共享菜单:

chooserIntent = Intent.createChooser(targetedShareIntents.remove(0), "Share via");
chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, targetedShareIntents.toArray(new Parcelable[]{}));
startActivityForResult(chooserIntent, SHARING_MENU);

弹出共享菜单后,如果用户按下“返回”按钮或在共享菜单外单击,则会关闭但活动重新启动并且网页会在网页视图中重新加载。

我想阻止它。我尝试在onActivityResult中实现以下代码,但它无法正常工作

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        // Check which request we're responding to
        if (requestCode == SHARING_MENU) {
            // Make sure the request was successful
            if (resultCode == RESULT_CANCELED) {
                webviewObj.stopLoading();
                this.finishActivity(SHARING_MENU);
            }
        }
    }

我尝试在清单文件中添加 - android:launchMode="singleInstance",但它不起作用。

请帮助!!!

1 个答案:

答案 0 :(得分:0)

我找到了解决这个问题的简单方法。

在WebView的活动中,我在: -

中添加了UI初始化代码
@Override
    protected void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.webview);

        if(savedInstanceState == null) {
            initUI();
        }           
    }

这解决了我的问题:)