package cn.test.lee;
import android.app.Service;
import android.content.Intent;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.os.IBinder;
public class MyPlayerService extends Service implements
MediaPlayer.OnPreparedListener {
private MediaPlayer mp1;
@Override
public IBinder onBind(Intent arg0) {
// TODO Auto-generated method stub
return null;
}
@Override
public void onStart(Intent intent, int startId) {
//mp1 = new MediaPlayer();
mp1 = MediaPlayer.create(this, R.raw.ai);
//mp1.reset();
mp1.setAudioStreamType(AudioManager.STREAM_MUSIC);
try {
//Bundle b = intent.getExtras();
//String videoPath = b.getString("videoPath");// "/mnt/sdcard/Video/Nobody.mp4";
//
//mp1.setDataSource(videoPath);// "/mnt/sdcard/Video/Nobody.mp4"
//// H264B3.3gp iceage.avi
//// test_h263.mp4 /sdcard/test.mp4
mp1.start();
//mp1.setOnPreparedListener(this);
} catch (Exception me) {
}
super.onStart(intent, startId);
}
@Override
public void onPrepared(MediaPlayer mp) {
// TODO Auto-generated method stub
mp.start();
}
@Override
public void onDestroy() {
mp1.release();
mp1 = null;
super.onDestroy();
}
}
//数据类型:
//整形(int、short int、long int、unsigned int、unsigned short、unsigned long)
NSLog(@"整形:");
NSLog(@"%lu",sizeof(int));//整形4个字节
NSLog(@"%lu",sizeof(short int));//短整形2
NSLog(@"%lu",sizeof(long int));//长整形8
NSLog(@"%lu",sizeof(unsigned int));//无符号整形4
NSLog(@"%lu",sizeof(unsigned short));//无符号短整形2
NSLog(@"%lu",sizeof(unsigned long));//无符号长整形8
//实形(float 、double 、long double)
NSLog(@"实形:");
NSLog(@"%lu",sizeof(float));//浮点形4
NSLog(@"%lu",sizeof(double));//双精度形8
NSLog(@"%lu",sizeof(long double));//长精度形16
//字符型和字符串形
char a='a';
char b=100;
NSLog(@"%c,%c",a,b);
NSLog(@"%i,%i",a,b);
NSLog(@"我是字符串");//字符串形:@“我是字符串”
http://blog.csdn.net/rhljiayou/article/details/7397889
PopupWindow
顾名思义为弹出式菜单,
不同于Dialag对话框,PopupWindow
不会使宿主activity组件失去焦点,
也就是说PopupWindow弹出后,
你可以与宿主activity进行交互,
Dialog却不能做到这一点。
注意:PopupWindow组件的使用问题,PopupWindow是一个阻塞对话框,如果你直接在Activity创建的方法中显示它,则会报错:android.view.WindowManager$BadTokenException:Unable to add window -- token null is not valid; is your activity running?
总结: PopupWindow必须在某个事件中显示或者是开启一个新线程去调用,不能直接在onCreate方法中显示一个Popupwindow,否则永远会有以上的错误
常用设置:
// PopupWindow定义,显示view,以及初始化长和宽
PopupWindow menu = new PopupWindow(view, 200, 60);
// 必须设置,否则获得焦点后页面上其他地方点击无响应
menu.setBackgroundDrawable(new BitmapDrawable());
// 设置焦点,必须设置,否则PopupWindow内的空间无法响应事件
menu.setFocusable(true);
// 设置点击其他地方 popupWindow消失
menu.setOutsideTouchable(true);
// 显示在某个位置
menu.showAsDropDown(anchor);
除了setBackgroundDrawable(new BitmapDrawable());还可以使用下面两种解决页面无法响应问题
a、处理响应
有点麻烦,有兴趣可以自己看看http://zhoudan241.iteye.com/blog/1147730
b、最笨的方法将listView中元素拿出来放到LinearLayout中,对于非listView都无需设置setFocusable(true),从而解决问题,具体可以见http://blog.csdn.net/ihrthk/article/details/7338791
但这种方法对于动态变化的菜单需要配置多份layout文件