Android一起执行IF和ELSE语句

时间:2016-12-09 14:44:18

标签: android notifications android-notifications

我正在使用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");
}

1 个答案:

答案 0 :(得分:0)

If和Else不能一次性执行。

您应检查其他代码,并确保此代码部分由于某种原因未执行两次(一次使用TRUE,一次使用FALSE)。