1. 需求,这个是《android开发必知的50个诀窍》一书中的mvp章节的需求。
在splash页面中,判断是否有网络连接,有则跳到下个页面,无则弹出一条消息通知用户,同时在检查网络是否正常的期间显示一个进度条。

2. 类目录结构

3. model接口和实现
public interface INetConnect {       boolean isNetConnect( Context context);  }  public class NetConnect implements INetConnect {         @Override       public boolean isNetConnect(Context context) {              if (context != null) {                  ConnectivityManager mConnectivityManager = (ConnectivityManager) context                            .getSystemService(Context. CONNECTIVITY_SERVICE);                  NetworkInfo mNetworkInfo = mConnectivityManager                             .getActiveNetworkInfo();                   if (mNetworkInfo != null) {                        return mNetworkInfo.isAvailable();                  }             }              return false;       }    }

4. view接口
public interface ISplashView {       void showProcessBar();       void hideProcessBar();       void showNetError();       void startNextActivity();  }

5. presenter实现
public class SplashPresenter {       private INetConnect connect;       private ISplashView iView;              public SplashPresenter(ISplashView iView){              this. iView = iView;              connect = new NetConnect();       }              public void didFinishLoading(Context context){              iView.showProcessBar();              if( connect.isNetConnect(context)){                   iView.startNextActivity();             } else{                   iView.showNetError();             }              iView.hideProcessBar();       }  }

6.activity中代码
public class MainActivity extends Activity implements ISplashView{         SplashPresenter presenter;       private ProgressDialog progressBar;       @Override       protected void onCreate(Bundle savedInstanceState) {              super.onCreate(savedInstanceState);             setContentView(R.layout. activity_main);                           presenter = new SplashPresenter( this);       }         @Override       protected void onResume() {              super.onResume();              presenter.didFinishLoading( this);       }              @Override       public void showProcessBar() {              if ( progressBar == null) {                   progressBar = new ProgressDialog( this);                   progressBar.setCancelable( true);                   progressBar.setCanceledOnTouchOutside( true);                   progressBar.setMessage( "更新数据中,请稍后" );             }  a            progressBar.show();       }         @Override       public void hideProcessBar() {              progressBar.hide();       }         @Override       public void showNetError() {             Toast. makeText(this, "暂无网络", Toast.LENGTH_SHORT).show();       }         @Override       public void startNextActivity() {             Toast. makeText(this, "跳到下个activity", Toast.LENGTH_SHORT).show();       }    }

更多相关文章

  1. Android网络请求框架:Volley简单使用
  2. android RecyclerView响应点击事件
  3. Android(安卓)IPC之Binder连接池BinderPool
  4. 使用x5cloud云平台来做网络彩讯-------------需要的权限(四)
  5. Android(安卓)Netd ndc
  6. binder 实例分析
  7. Android中ImageView使用网络图片资源的方法
  8. 【Android高级工程师】Android项目开发如何设计整体架构?
  9. Android(安卓)Volley 网络请求框架图

随机推荐

  1. Android(安卓)Studio修改包名实战
  2. 几个开源XMPP Android客户端简单比较
  3. phonegap源码分析(一)------ android
  4. 【转】Android(安卓)调试桥(adb),很方便很
  5. Android(安卓)为不同的语言和硬件创建资
  6. Android之微信第三方登录
  7. Android(安卓)依赖中的jar 包获取方式
  8. Android(安卓)面部识别之一(SDK自带检测检
  9. Android碎片机制
  10. Android(安卓)任务、进程和线程