我有一个非常常见的问题,我认为每个 android 开发人员都会在某个时候面临。我正在制作一个从网络服务器加载数据的应用程序。因此,正在使用互联网连接。但是我必须在每次调用服务器之前检查互联网连接。我正在使用 ConnectivityManager 进行操作,并且可以正常工作。
我的问题实际上是关于在互联网连接丢失时通知用户。我想向用户显示一个 AlertDialog 框,告诉他失去了互联网连接。现在的问题是,如果用户单击一个按钮并且必须启动一个新的 Activity (这将从服务器加载数据),那么我无法向他显示调用 Activity 的对话框。这里的问题是,如果互联网不可用,我不想导航到其他活动。我只想继续参加这项活动。
这个活动上有很多按钮,点击它们,用户可以去不同的活动。如果没有可用的互联网,我想要的只是不打开其他活动,并仅向他显示此活动的对话框。一种方法是检查每个按钮的单击(在 onClick 方法中),然后通知用户有关丢失的 Internet 连接。但这对我来说可能非常忙碌,因为每个活动都有很多活动和很多按钮。
是否有一种通用且有效的方法来确定是否正在离开此活动并且正在启动新活动并在找到它后向用户显示对话框而不是在互联网不可用时移动到下一个活动。什么是最好的处理这个问题的做法。请帮我。在过去的两天里,我一直坚持这一点。提前谢谢。
@Override
public void onClick(View view) {
switch(view.getId()){
case R.id.backIcon:
navigateMenuScreen(view);
break;
}
}
这是我检查互联网连接的方法(它工作正常):
ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();
if (networkInfo!=null && networkInfo.isConnected()) {
return true;
} else {
return false;
}
这是导航方法:
public void navigateMenuScreen(View view){
try {
Intent loginIntent = new Intent(view.getContext(), MenuActivity.class);
startActivityForResult(loginIntent, 0);
overridePendingTransition(android.R.anim.slide_in_left, android.R.anim.slide_out_right);
} catch(Exception ex) {
}
}
我的问题是我必须在每种导航方法中检查互联网连接(还有其他方法,如上述方法)还是有更好的方法?