当用户点击登录按钮时,我通过意图调用一个活动。当互联网连接不佳时,用户点击登录按钮,活动不会立即启动,因此用户再次单击登录按钮。一段时间后,有两个活动正在开放。我可以解决这个问题。 互联网连接良好时很好。
提前致谢
答案 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" />
希望它对你有所帮助。