如何向用户显示网络连接状态

时间:2013-02-23 15:33:15

标签: android android-layout android-view layout-inflater

我的应用仅在有网络连接时才有效。所以,我在应用启动和恢复时检查相同的内容。

我有一个广播接收器,可以监听网络变化。

如果没有网络,我想显示简单的“无网络连接”视图。 “无网络连接”包含一个文本视图,表明没有带有悲伤面孔的互联网。

当网络可用时,我想从广播接收器中将“无连接视图”更改为我的“信息中心”视图。

“仪表板”视图包含应用程序的主要业务逻辑和工作流程。

因此,根据网络状态,活动在两个视图之间振荡。

实现这一目标的最佳方式是什么?

案例1:这两种观点都有自己的活动。 问题:我需要处理“无连接”视图的背压和生命周期事件,这些事件是多余的。

案例2:一项活动,并根据网络状态动态使用切换视图

案例3:在同一个xml文件中有两个布局(相对布局)。根据状态打开/关闭可见性。

案例4:使用Inflater动态切换视图。

提前致谢。

1 个答案:

答案 0 :(得分:0)

使用一个包含两个片段的活动:Connect Status Fragment,Dashboard Fragment

private void showFramentDepends(){
    if(networkisfine){
        // init your fragmnet
        switchFragment(ConnectStatusFragment);
    }else{
        switchFrament(DashboardFragment);
    }
}

private void switchFragment(Fragment fragment){
    FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
    ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
    ft.replace(R.id.content_fragment, fragment);
    ft.commit();
}

并且你的活动布局xml文件应该是这样的:

<FrameLayout
    android:id="@+id/content_fragment"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1">
</FrameLayout>