Как запретить перезагрузку Activity при использовании Intent.createChooser() для запуска меню обмена?

У меня есть 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 ответ

Решение

Я нашел простое решение этой проблемы.

В Activity WebView я добавил код инициализации UI внутри:-

@Override
    protected void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.webview);

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

И это решило мою проблему:)

Другие вопросы по тегам