我正在使用FireBase Notifications,我可以发送通知,将用户发送到我在控制台上输入的webview页面。
问题是当它匹配IF语句时也会触发else语句,可能是什么原因造成的呢?
if(getIntent().getExtras()!=null) {
for (String key : getIntent().getExtras().keySet()) {
if (key.equals("url")){
mwebView.loadUrl("http://example.com/" + getIntent().getExtras().getString(key));
}else {
mwebView.loadUrl("http://example.com");
}
}
}
因为它在应用程序崩溃的同时执行。
此外,当我按照通常的方式加载应用程序时,它与with:
匹配if(getIntent().getExtras()!=null)
然后加载else语句。 getExtras
不应该是null
吗?
当我第一次安装应用程序的新实例时,它使用以下语句:
if(getIntent().getExtras()==null) {
if (haveNetworkConnection()) {
mwebView.loadUrl("http://example.com");
} else {
mwebView.loadUrl("file:///android_asset/myerrorpage.html");
}
}
更新
由于我无法找出为什么会发生这种情况,我正在尝试另一种方法,如何使用循环外的变量来使用如下:
if(getIntent().getExtras()!=null) {
for (String key : getIntent().getExtras().keySet()) {
String valuex = getIntent().getExtras().getString(key);
}
}
if (haveNetworkConnection()) {
mwebView.loadUrl("http://example.com/" + valuex);
} else {
mwebView.loadUrl("file:///android_asset/myerrorpage.html");
}
答案 0 :(得分:0)
If和Else不能一次性执行。
您应检查其他代码,并确保此代码部分由于某种原因未执行两次(一次使用TRUE,一次使用FALSE)。