我在 OnResume 中加载了我的 webview 代码。这是所使用代码的概述。
public void onResume() {
super.onResume();
webView = (WebView)findViewById( R.id.webview );
//webview options
webView.setWebViewClient(new WebViewClient(){
//some stuff here
}
});
Bundle extras1 = getIntent().getExtras();
if (extras1 != null) {
String theurl = getIntent().getExtras().getString("url");
webView.loadUrl(theurl);
} else {
webView.loadUrl("http://example.com");
}
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
setIntent(intent);
}
当应用程序启动时,没有额外的东西,所以我的默认 url 被加载。
如果应用程序是从通知启动的,则会加载自定义 url。
这按预期工作。
这是使用的 Pending.Intent 代码。
notificationIntent.putExtra("url", url);
notificationIntent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
int requestID = (int) System.currentTimeMillis();
PendingIntent intent = PendingIntent.getActivity(context, requestID, notificationIntent, PendingIntent.FLAG_ONE_SHOT);
待处理的意图触发并加载自定义 url。如果我然后切换到另一个应用程序,然后切换回我的主应用程序,即使我已经导航离开,挂起的意图也会再次被触发,将我带回自定义 url。
我希望应用程序在恢复后返回已经打开的页面。即保存实例状态或其他东西。
我认为 FLAG_ONE_SHOT 会处理它。
任何输入将不胜感激。