由于Android版本问题StrictMode模式下访问网络报错的解决办法 绝对经典
来源:互联网 发布:易企秀同类软件 编辑:程序博客网 时间:2024/05/16 01:25
设置严苛模式(StrictMode)的线程策略
StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder() .detectDiskReads() .detectDiskWrites() .detectNetwork() .penaltyLog() .build());
Builder类使得设置变得很简单,Builder函数定义所有策略都返回Builder对象,从而这些函数能像列表2-9那样串连在一起。最后调用build()函数返回一个ThreadPolicy对象作为StrictMode对象的setThreadPolicy()函数的参数。注意到setThreadPolicy()是一个静态函数,因此不需要实例化StrictMode对象。在内部,setThreadPolicy()将对当前线程应用该策略。如果不指定检测函数,也可以用detectAll()来替代。penaltyLog()表示将警告输出到LogCat,你也可以使用其他或增加新的惩罚(penalty)函数,例如使用penaltyDeath()的话,一旦StrictMode消息被写到LogCat后应用就会崩溃。
仅在调试模式设置严苛模式(StrictMode)
ApplicationInfo appInfo = context.getApplicationInfo();
int appFlags = appInfo.flags;
try {
try {
如果考虑到关于版本兼容问题,因为按照上面的写法在2.3以下系统是没有问题的,但是在2.3及以上的话,就会出错,所以应该采用以下方式来处理:
@SuppressLint("NewApi")
public static void init(Context context) {
// check if android:debuggable is set to true
int appFlags = context.getApplicationInfo().flags;
if ((appFlags & ApplicationInfo.FLAG_DEBUGGABLE) != 0) {
try {
//Android 2.3及以上调用严苛模式
Class sMode = Class.forName("android.os.StrictMode");
Method enableDefaults = sMode.getMethod("enableDefaults");
enableDefaults.invoke(null);
} catch (Exception e) {
// StrictMode not supported on this device, punt
Log.v("StrictMode", "... not supported. Skipping...");
}
}
}
- 由于Android版本问题StrictMode模式下访问网络报错的解决办法 绝对经典
- import别人的源代码由于版本问题报错解决
- android图片选择由于版本导致的oom解决办法
- android studio编译项目因为V7包版本问题报错的解决办法
- linux下由于系统编码问题造成乱码的解决办法
- linux下由于系统编码问题造成乱码的解决办法
- linux下由于系统编码问题造成乱码的解决办法
- Android的StrictMode(严苛模式)
- Android StrictMode严格模式的使用方法
- Android StrictMode 严苛模式
- Android开启StrictMode模式
- Android StrictMode严格模式
- Windows XP网络访问问题的解决办法
- 由于sdk版本,locationManager.getLastKnownLocation报错
- 由于IE版本问题导致SAP的F1帮助文档显示不出来的解决办法
- android 2.3 StrictMode 使用 Android 2.3新特性StrictMode限制模式的工作方式
- 由于Spring3.0.5、Hibernante3.2.7、Struts2.1版本不兼容导致的问题及其解决办法。
- Android中关于:at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1099) 的问题
- Fragment生命周期
- java date 比较时间
- 企业网络营销制胜点:人才+策略
- 来料进料加工贸易的税务处理
- VS2012 怎么把.net 4.6框架做的项目转为.net 3.5
- 由于Android版本问题StrictMode模式下访问网络报错的解决办法 绝对经典
- 关于创业团队能否成功的感想
- linux vi的使用
- vector 出现错误: C4430, C2238, C2143
- 关于@@identity
- dedecms用户上传头像大小限制简单修改
- 用内存映射文件的方式读取大文件
- linux-文件和目录操作
- 仿飞鸽传书的Android版本