单击时会启动多个活动

时间:2015-07-18 06:05:42

标签: android android-intent

当用户点击登录按钮时,我通过意图调用一个活动。当互联网连接不佳时,用户点击登录按钮,活动不会立即启动,因此用户再次单击登录按钮。一段时间后,有两个活动正在开放。我可以解决这个问题。 互联网连接良好时很好。

提前致谢

3 个答案:

答案 0 :(得分:1)

问题通过清单

中的android:launchmode="singleTop"解决

答案 1 :(得分:0)

最好检查互联网连接,并在互联网不可用时向用户提供正确的信息。

您可以在班级中创建以下方法来执行此操作 -

public static boolean checkInternetConnection(Context context) {
 ConnectivityManager cm = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
    // test for connection
    if (cm.getActiveNetworkInfo() != null
            && cm.getActiveNetworkInfo().isAvailable()
            && cm.getActiveNetworkInfo().isConnected()) {
        return true;
    } else {
        return false;
    }
}

如果返回true,则启动新活动,否则显示inernet not available message。

答案 2 :(得分:0)

是的,这不应该发生。

您需要先检查是否有可用的互联网连接(通过移动互联网和Wifi

private boolean haveNetworkConnection() {
    boolean haveConnectedWifi = false;
    boolean haveConnectedMobile = false;

    ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo[] netInfo = cm.getAllNetworkInfo();
    for (NetworkInfo ni : netInfo) {
        if (ni.getTypeName().equalsIgnoreCase("WIFI"))
            if (ni.isConnected())
                haveConnectedWifi = true;
        if (ni.getTypeName().equalsIgnoreCase("MOBILE"))
            if (ni.isConnected())
                haveConnectedMobile = true;
    }
    return haveConnectedWifi || haveConnectedMobile;
}

此方法将检查是否通过移动互联网或Wifi提供互联网连接。您可以明显调整此项以检查高速连接是否可用。但是对于简单的登录,这就足够了。

现在只有当此方法返回Activiy时才开始true,否则不要。

请确保您在清单文件

中拥有此权限
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

希望它对你有所帮助。