没有互联网消息的设计模式

时间:2016-07-28 03:48:16

标签: android android-fragments

我正在开发一个有几个屏幕的电子商务应用程序。当没有互联网时,需要显示具有“无互联网可用”消息的特定片段。一旦互联网恢复,这个片段就会消失,并且应该显示先前加载的片段。

这类问题应该采用什么样的设计?

2 个答案:

答案 0 :(得分:0)

我不知道它是否是一个模式,但我会使用BaseActivity和一个公共布局来处理所有活动中只有一个片段容器,然后:

  1. 让您的每个活动在上述容器中显示其内容。
  2. 处理互联网连接/断开的逻辑将在BaseActivity中,而BaseActivity又是
  3. 当互联网消失时,将负责替换片段容器中的当前内容,并稍后将其切换回来。

答案 1 :(得分:0)

这实际上取决于用户体验/产品人员如何处理它。

两种最常见的方法[当然不是设计模式]是

1)具有BaseActivity / BaseFragment并包含布局。每当您的网络状态发生变化时,您都会从LocalBroadcastManager中搜索BaseActivity / BaseFragment监听的LocalBroacast。这里根据条件使包含的布局可见或消失。

2)第二种方法是您不主动收听网络状态更改,但在使用api之类的网络请求之前使用ConnectivityManager Android has a nice article here

public boolean isConnected(){
    ConnectivityManager cm =
            (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);

    NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
    boolean isConnected = activeNetwork != null &&
                          activeNetwork.isConnectedOrConnecting();
    return isConnected;
}

当isConnected为false时,使用与第1页中相同的方法在任何屏幕中显示错误。