使用 Intent.createChooser() 启动共享菜单时如何阻止 Activity 重新加载?
How to stop Activity from reloading when using Intent.createChooser() to launch a sharing menu?
我有一个 WebView,它在页面底部有一个共享图标。
当用户按下图标时,它会启动一个共享菜单:
chooserIntent = Intent.createChooser(targetedShareIntents.remove(0), "Share via");
chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, targetedShareIntents.toArray(new Parcelable[]{}));
startActivityForResult(chooserIntent, SHARING_MENU);
共享菜单弹出后,如果用户按下后退按钮或在共享菜单外单击,它会关闭,但 Activity 会重新启动,网页会在 webview 中重新加载。
我想阻止它。我尝试在 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"
,但它不起作用。
请帮忙!!!
我找到了解决这个问题的简单方法。
在 WebView 的 Activity 中,我在 :-
中添加了 UI 初始化代码
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.webview);
if(savedInstanceState == null) {
initUI();
}
}
这解决了我的问题:)
我有一个 WebView,它在页面底部有一个共享图标。
当用户按下图标时,它会启动一个共享菜单:
chooserIntent = Intent.createChooser(targetedShareIntents.remove(0), "Share via");
chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, targetedShareIntents.toArray(new Parcelable[]{}));
startActivityForResult(chooserIntent, SHARING_MENU);
共享菜单弹出后,如果用户按下后退按钮或在共享菜单外单击,它会关闭,但 Activity 会重新启动,网页会在 webview 中重新加载。
我想阻止它。我尝试在 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"
,但它不起作用。
请帮忙!!!
我找到了解决这个问题的简单方法。
在 WebView 的 Activity 中,我在 :-
中添加了 UI 初始化代码@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.webview);
if(savedInstanceState == null) {
initUI();
}
}
这解决了我的问题:)