非wifi用户选在图片加载模式
来源:互联网 发布:1大学生网络党校 编辑:程序博客网 时间:2024/06/05 03:31
public class MainActivity extends AppCompatActivity { ConnectivityBroadcastReceiver mConnectivityBroadcastReceiver; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //注册 IntentFilter filter = new IntentFilter(); filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION); mConnectivityBroadcastReceiver = new ConnectivityBroadcastReceiver(); registerReceiver(mConnectivityBroadcastReceiver, filter); } //测试一下 public void onTestBaseUrl(View view){ Toast.makeText(MainActivity.this,NetUtils.getInstance().getBASE_URL(),Toast.LENGTH_SHORT).show(); } public void onClick(View view){ String[] strings={"最佳效果", "较省流量", "极省流量"}; int mode= Myapp.getMyapp().getSharedPreferences(NetUtils.SP_NAME,Context.MODE_PRIVATE).getInt(NetUtils.PICTURE_LOAD_MODE_KEY,0); AlertDialog.Builder builder=new AlertDialog.Builder(this); builder.setTitle("非wife网络流量"); builder.setSingleChoiceItems(strings, mode, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { //// TODO: 2017/8/10 要保存我们的图片加载模式 Myapp.getMyapp().getSharedPreferences(NetUtils.SP_NAME,Context.MODE_PRIVATE).edit().putInt(NetUtils.PICTURE_LOAD_MODE_KEY,which).commit(); dialog.dismiss(); } }); builder.setNegativeButton("取消",null); builder.create().show(); } * 接受网络状态的改变 public class ConnectivityBroadcastReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { if (ConnectivityManager.CONNECTIVITY_ACTION.equals(intent.getAction())) { boolean isMobileConnectivity = true; //如果能走到这,说明网络已经发生变化 ConnectivityManager manager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo activeNetworkInfo = manager.getActiveNetworkInfo(); if (activeNetworkInfo != null && activeNetworkInfo.isConnected()) { if (ConnectivityManager.TYPE_WIFI == activeNetworkInfo.getType()) { Toast.makeText(MainActivity.this, "wifi可用,下载吧", Toast.LENGTH_SHORT).show(); isMobileConnectivity = false; } else if (ConnectivityManager.TYPE_MOBILE == activeNetworkInfo.getType()) { Toast.makeText(MainActivity.this, "现在是移动网络,当心", Toast.LENGTH_SHORT).show(); isMobileConnectivity = true; //获得现在的网络状态 是移动网络,去改变我们的访问接口 } else { Toast.makeText(MainActivity.this, "网络不可用,请检查网络", Toast.LENGTH_SHORT).show(); } } else { Toast.makeText(MainActivity.this, "网络不可用,请检查网络", Toast.LENGTH_SHORT).show(); } //// TODO: 2017/8/10 改变一下网络状态 NetUtils.getInstance().changeNetState(isMobileConnectivity); } } } @Override protected void onDestroy() { super.onDestroy(); //解注册 unregisterReceiver(mConnectivityBroadcastReceiver); }}Application类:public class Myapp extends Application { private static Myapp myapp; @Override public void onCreate() { super.onCreate(); myapp=this; } public static Context getMyapp(){ return myapp; }}NetUtils类:
public class NetUtils { private static NetUtils netutils; public static final String SP_NAME = "SP_NAME"; public static final String PICTURE_LOAD_MODE_KEY = "PICTURE_LOAD_MODE_KEY"; private static final String BASE_URL_BIG_PICTURE = "http://www.big.picture"; private static final String BASE_URL_SMALL_PICTURE = "http://www.small.picture"; private static final String BASE_URL_NO_PICTURE = "http://www.no.picture"; //baseurl默认使用大图的模式 private String BASE_URL = BASE_URL_BIG_PICTURE; private boolean isMobileConnectivity = true; public NetUtils(){ } //单例模式 public static NetUtils getInstance(){ if (netutils==null){ synchronized (NetUtils.class){ if (netutils==null){ netutils=new NetUtils(); } } } return netutils; } * 使用get post请求的时候,调用这个方法获取我们的baseUrl,直接去请求就可以 public String getBASE_URL(){ // TODO: 2017/8/10 根据网络状态和用户选择,选择对应的baseurl if (isMobileConnectivity){ //// TODO: 2017/8/10 根据用户选择 返回对应的url int mode= Myapp.getMyapp().getSharedPreferences(SP_NAME, Context.MODE_PRIVATE).getInt(PICTURE_LOAD_MODE_KEY,0); switch (mode){ case 0: BASE_URL=BASE_URL_BIG_PICTURE; break; case 1: BASE_URL=BASE_URL_SMALL_PICTURE; break; case 2: BASE_URL=BASE_URL_NO_PICTURE; break; } }else { BASE_URL=BASE_URL_BIG_PICTURE; } return BASE_URL; } //更改我们当前的网络状态 public void changeNetState(boolean isMobileConnectivity ){ this.isMobileConnectivity=isMobileConnectivity; }}<!--上网权限 和 获取网络状态的权限--><uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
阅读全文
0 0
- 非wifi用户选在图片加载模式
- 非wifi网络用户选择图片加载模式
- ImageLoader配置在非WiFi状态下不下载图片
- 非wifi用户选择网络
- ConnectivityManager判断当前网络连接类型,非WiFi网络流量加载模式
- 使用Glide实现在非WiFi环境手动点击下载图片(判断Glide是否缓存了图片)
- 非UI线程加载图片
- Android高性能加载大量图片系列课程2-在非UI线程中处理图片
- 在移动网络状态下,选择加载图片模式
- 选择图片加载模式
- wifi模块工作在Station模式
- 用户控件动态加载图片问题解决方法!
- 细谈在非WIFI状态下显示GIF缩略图效果
- ubuntu 在非root用户下抓包设置
- 在按钮上加载图片
- EOS非Portal模式下,如何开发一个用户登录验证程序,用户只有在登录验证通过后,方可访问系统。
- 图片显示提高用户体验—JS实现—图片预加载,图片延迟加载
- 在用户空间加载和卸载驱动
- IO补充
- rem 等比例样式
- HDU 6106-Classes
- 原生js实现数组去重的5种方法
- 华为抢了腾讯的利益,腾讯却拿用户数据说事
- 非wifi用户选在图片加载模式
- vxWorks中系统任务tIsr的实现及使用
- kali 网络配置
- struts2--详细了解struts2框架的校验器
- 事件内核对象Event
- 用变量定义模式匹配字符串时,用单引号和双引号的区别
- 华中、华北、华南、西北、东北、西南、华东各包括的省市
- SharePoint Server 2016 中的数据库类型和说明
- tmpfs介绍