mesasge在提供的参数中传递的几乎都是整形,有时候我们想传递一个对象到线程里面更新就显得很棘手
今天突然看了Bundle可以传递对象,message又可以传递Bundle于是就可以利用buddle作为中间载体传递对象了
Message msg = Message.obtain();
Bundle b = new Bundle();
b.putParcelable("MyObject", (Parcelable) object);
msg.setData(b);
handler.sendMessage(msg);
public void handleMessage(Message msg) {
super.handleMessage(msg);
MyObject objectRcvd = (MyObject) msg.getData().getParcelable("MyObject");
。。。。。。。。
}
这个方法通常传递图片或者泛型等
不过有了AsyncTask 处理起来也就不用那么麻烦 看个人喜好了
音乐之循环播放
原理: //假设 MediaPlayer mp = new MediaPlayer();
1. mp.setLooping(true);
2. mp.setOnCompletionListener(OnCompletionListener l) 用于监听音乐播放结束 此时命令其播放下首
但是 在开发中 遇到一下奇怪现象 与大家共勉
使用了setLooping(true) 后会导致OnCompletionListener不会被调用 对此 我也不知为什么 或许是个bug 又或许MediaPlaye机制使然 总之 以后二者皆有 注意就是了
至于循环播放 并没有写完 也仅仅是测试其实现原理 经测试确实可行 就停手了 因其的确比较简单 没有深究价值 大家如
果有什么问题 提出了 我们一起讨论讨论
sdcard里有多首歌曲怎么做到按顺序播放呀
我通过下面的代码放入的是一首歌曲
mediaPlayer.setDataSource("/sdcard/music/a.mp3");
今天在整理一些状态机方面的代码,发现Lua有些特别有用的特性,以前太匆忙,都没花心思深入了解过,这会儿赶紧趁热整理一下。
1.loadstring(s)
load一个字符串,返回一个函数。loadfile功能类似。
用这个api可以实现面向对象里的反射功能。
2.assert()
错误处理,很有用。
3.闭包
函数可以在任何地方定义,比如
t={sort=function()... end}
这样,sort属性就成为一个函数了
4.for k,v inparis(t) do
...
end
以键-值对遍历table