android中一种不常见的函数调用方式
2015-06-29 18:44
543 查看
android中一种不常见的函数调用方式:
此 demo 中只是做了一件很简单的事,创建一个目录。
调用流程:
initializeFirstTime() --> addIdleHandler() --> ensureOSXCompatible ()
private void addIdleHandler() {
MessageQueue queue = Looper.myQueue();
queue.addIdleHandler( new MessageQueue.IdleHandler() {
@Override
public boolean queueIdle() {
Storage. ensureOSXCompatible();
Storage. ensureQQShortVideoCompatible();
return false;
}
});
}
/**
* OSX requires plugged -in USB storage to have path /DCIM/NNNAAAAA to be
* imported. This is a temporary fix for bug#1655552.
*/
public static void ensureOSXCompatible () {
File nnnAAAAA = new File( DCIM, "100ANDRO");
if (!( nnnAAAAA.exists() || nnnAAAAA.mkdirs())) {
Log.e( TAG, "Failed to create " + nnnAAAAA.getPath());
}
}
关键点在 addIdleHandler() 函数中,会先获主线程的消息队列,向消息队列中添加一个新的MessageQueue.IdleHandler。
当调用IdleHandler.queueIdle()返回false时,此MessageQueue.IdleHandler会自动的从消息队列中移除。
或者调用removeIdleHandler(MessageQueue.IdleHandler)也可以从消息队列中移除MessageQueue.IdleHandler。
addIdleHandler这个函数的具体释义可以参见:http://developer.android.com/reference/android/os/MessageQueue.html
addIdleHandler 一般是在 onCreate() 函数或者 initializeFirstTime() 函数当中调用。
在这里可以套用此模式,做任何你想做的事。也可以在此处创建一些UI界面等。
private void addIdleHandler() {
MessageQueue queue = Looper.myQueue();
queue.addIdleHandler( new MessageQueue.IdleHandler() {
@Override
public boolean queueIdle() {
// TODO Auto-generated method stub
//你想做的任何事情
//........
//........
return false;
}
});
}
此 demo 中只是做了一件很简单的事,创建一个目录。
调用流程:
initializeFirstTime() --> addIdleHandler() --> ensureOSXCompatible ()
private void addIdleHandler() {
MessageQueue queue = Looper.myQueue();
queue.addIdleHandler( new MessageQueue.IdleHandler() {
@Override
public boolean queueIdle() {
Storage. ensureOSXCompatible();
Storage. ensureQQShortVideoCompatible();
return false;
}
});
}
/**
* OSX requires plugged -in USB storage to have path /DCIM/NNNAAAAA to be
* imported. This is a temporary fix for bug#1655552.
*/
public static void ensureOSXCompatible () {
File nnnAAAAA = new File( DCIM, "100ANDRO");
if (!( nnnAAAAA.exists() || nnnAAAAA.mkdirs())) {
Log.e( TAG, "Failed to create " + nnnAAAAA.getPath());
}
}
关键点在 addIdleHandler() 函数中,会先获主线程的消息队列,向消息队列中添加一个新的MessageQueue.IdleHandler。
当调用IdleHandler.queueIdle()返回false时,此MessageQueue.IdleHandler会自动的从消息队列中移除。
或者调用removeIdleHandler(MessageQueue.IdleHandler)也可以从消息队列中移除MessageQueue.IdleHandler。
addIdleHandler这个函数的具体释义可以参见:http://developer.android.com/reference/android/os/MessageQueue.html
addIdleHandler 一般是在 onCreate() 函数或者 initializeFirstTime() 函数当中调用。
在这里可以套用此模式,做任何你想做的事。也可以在此处创建一些UI界面等。
private void addIdleHandler() {
MessageQueue queue = Looper.myQueue();
queue.addIdleHandler( new MessageQueue.IdleHandler() {
@Override
public boolean queueIdle() {
// TODO Auto-generated method stub
//你想做的任何事情
//........
//........
return false;
}
});
}
相关文章推荐
- Android数据库存储与访问
- android中handler用法总结
- android优化 清除无效代码 UCDetector
- Android中对sd卡的读写权限问题
- Android handler的Context内存泄露
- Android应用性能优化之使用SparseArray替代HashMap
- android学习笔记 -- Activity生命周期
- Android应用有道词典
- android jni 中常使用的函数及用法
- Android数据存储与访问
- android dom解析xml
- [Android5 系列—] 1. 构建一个简单的用户界面
- [Android5 系列—] 1. 构建一个简单的用户界面
- VLC Android录制视频
- Android动画探究
- Android 地图-animateCamera() 方法不正确工作
- Android 中关于 Cursor 类的介绍
- [android] activity的四种加载模式
- Android指纹识别demo程序
- Android 编程下 Touch 事件的分发和消费机制