当前位置: 编程技术>移动开发
本页文章导读:
▪银幕状态 屏幕状态
获取当前屏幕是否锁定
public boolean isScreenLocked(Context c) {
android.app.KeyguardManager mKeyguardManager = (KeyguardManager) c.getSystemService(Context.KEYGUARD_SERVICE);
return !mKeyguardManager.inKeyguardRest.........
▪ StrictMode 引见 StrictMode 介绍
android网络磁盘applicationsqlite数据库
ANR窗口产生的原因是多种多样的。程序的主线程因为IO读写或网络阻塞而导致被阻塞了,外部存储设备被独占了或系统负荷(load)过高(.........
▪ java 反照机制的笔记 java 反射机制的笔记
package com.test.demo
class Demo {
public interface Listener {
onCallback();
}
}
Log.v(TAG, "output : " + Demo.class); ===> "output : class com.test.demo.Demo"
Log.v(TAG, "output : " + Liste.........
[1]银幕状态
来源: 互联网 发布时间: 2014-02-18
屏幕状态
获取当前屏幕是否锁定
public boolean isScreenLocked(Context c) { android.app.KeyguardManager mKeyguardManager = (KeyguardManager) c.getSystemService(Context.KEYGUARD_SERVICE); return !mKeyguardManager.inKeyguardRestrictedInputMode(); }
[2] StrictMode 引见
来源: 互联网 发布时间: 2014-02-18
StrictMode 介绍
android网络磁盘applicationsqlite数据库
ANR窗口产生的原因是多种多样的。程序的主线程因为IO读写或网络阻塞而导致被阻塞了,外部存储设备被独占了或系统负荷(load)过高(即不是自己编写的程序的问题,可能是系统或者其他第三方程序导致的问题),都有可能导致ANR窗口的出现。
从Android 2.3开始提供了一个新的类StrictMode,可以帮助开发者改进他们的Android应用,StrictMode可以用于捕捉发生在应用程序主线程 中耗时的磁盘、网络访问或函数调用,可以帮助开发者使其改进程序,使主线程处理UI和动画在磁盘读写和网络操作时变得更平滑,
避免主线程被阻塞,导致ANR窗口的发生。
下面简要说明下Android 2.3新特性StrictMode限制模式的工作方式,见下面的代码:
01
public void onCreate() {
02
if (DEVELOPER_MODE) {
03
StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()
04
.detectDiskReads()
05
.detectDiskWrites()
06
.detectNetwork() // 这里可以替换为detectAll() 就包括了磁盘读写和网络I/O
07
.penaltyLog() //打印logcat,当然也可以定位到dropbox,通过文件保存相应的log
08
.build());
09
StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()
10
.detectLeakedSqlLiteObjects() //探测SQLite数据库操作
11
.penaltyLog() //打印logcat
12
.penaltyDeath()
13
.build());
14
}
15
super.onCreate();
16
}
上述代码可以在Application的OnCreate中添加,这样就能在程序启动的最初一刻进行监控了。
[3] java 反照机制的笔记
来源: 互联网 发布时间: 2014-02-18
java 反射机制的笔记
package com.test.demo
class Demo {
public interface Listener {
onCallback();
}
}
Log.v(TAG, "output : " + Demo.class); ===> "output : class com.test.demo.Demo"
Log.v(TAG, "output : " + Listerer.class); ===> "output : interface com.test.demo.Demo$Listener "
public static final String WPS_LISTENER = "android.net.wifi.WifiManager$WpsListener"; Method method = WifiManager.class.getMethod("startWps", WpsInfo.class, Class.forName(WPS_LISTENER)); Log.d(TAG, "startWps, method : " + method); method.invoke(wifiManager, wpsInfo, mWpsListener);
System.out.print(Class.forName("java.lang.String").newInstance().getClass().getName());
最新技术文章: