我的应用程序像许多其他人一样需要不断的互联网连接。在我的主要活动中,我有:
@Override
public void onStart() {
if (!isOnline()) {
Intent disconnected = new Intent(this, Disconnected.class);
startActivity(disconnected);
}
else {
...
}
}
Disconnected活动显示带有消息和重试按钮的TextView。 现在问题是,如果用户按下它,他会立即再次进入Disconnected活动,并且无法使用返回退出应用程序。 什么是处理没有互联网连接的优雅方式?我的主要活动是一个ListView,我应该只有隐藏的视图,只有在没有连接时才出现? (我觉得这不是正确的方法)。
答案 0 :(得分:2)
可以有几个选项
选项1:
使用AlertDialog显示断开连接。将其设置为不可取消,并使用两个按钮,如重试和退出。
选项2:
如果发生网络断开,则使用启动活动开始断开连接活动。在新活动中有一个重试按钮。如果设置了重试,则设置为OK并完成。如果后退按钮按下设置CANCEL。现在在onActivityResult的第一个活动中,如果你得到RESULT_OK然后重试连接。
答案 1 :(得分:0)
如果您的起始活动只是if语句,并且仅用于检查用户是否具有互联网连接,则只需在输入Disconnected
活动时完成该活动
您可以通过设置FLAG_ACTIVITY_CLEAR_TOP
标记来调用StartActivity
来执行此操作。
@Override
public void onStart() {
if (!isOnline()) {
Intent disconnected = new Intent(this, Disconnected.class);
disconencted.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(disconnected);
}
else {
... // Here you would want to do the same thing;
// if not, the user could navigate back to this activity as well
}
}
我无法测试这个,但我认为它应该可行。