android中一种不常见的函数调用方式
来源:互联网 发布:数据库查询手机号是 编辑:程序博客网 时间:2024/04/30 11:19
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;
}
});
}
0 0
- android中一种不常见的函数调用方式
- 函数调用的第一种方式(补充)
- java中一种不常见的方法声明
- SOA中service常见的调用方式
- 大奖赛的评分(不调用函数)---第一种方法
- nios软核cpu中架构类shell的一种解决方式『linux 系统函数调用的方法』
- 一种不常见的跨域方式--使用CSS3特性做跨域
- Shell中函数的返回值的一种调用
- Android中常见的资源获取方式
- Android中常见的XML解析方式
- Android中常见更新UI的方式
- java中写构造函数的另外一种方式
- c#中调用JavaScript脚本函数的一种方法
- 一种动态方式调用dll中类
- 一种动态方式调用dll中类
- js中常见的几种调用ajax的方式
- C++中函数调用的方式
- JS调用函数的5中方式
- 华硕X550C 安装Ubuntu 14.10 无线网络显示硬件被禁用的解决方法
- 手机如何截屏?
- WebService(2)-XML系列之Schema
- Gson的fromJson()方法
- Apache+Tomcat集群配置
- android中一种不常见的函数调用方式
- KMP算法解析
- GDB学习
- Fleury算法 hihoCoder1181 欧拉路·二
- meanshift算法
- 静态代码块的执行顺序(类中含有本类对象)
- C语言文件路径问题(一)
- [leetcode] Valid Palindrome
- 花生壳域名ping不通怎么办