当前位置:  编程技术>移动开发
本页文章导读:
    ▪程序起动,全屏幕广告盖住statusbar方法        程序启动,全屏幕广告盖住statusbar方法首先plist里设置statusbar隐藏 之后新建一个全屏幕的UIWindow对象,属性需要设置一下 self.windowLevel = UIWindowLevelStatusBar + 1.0f; 然后设置它的hidden属性为NO .........
    ▪ 优先级反转和解决办法        优先级反转和解决方法优先级反转的描述: 假设任务1,任务2,任务3;他们的优先级顺序分别为1 > 2 > 3。有一个稀缺资源S,S由一个信号量控制为互斥访问。 任务3正在执行,并申请到.........
    ▪ 下载一首网络歌曲 该歌曲地址获取不到歌曲的大小,但可以通常播放       下载一首网络歌曲 该歌曲地址获取不到歌曲的大小,但可以正常播放有些歌曲的下载地址,无法获得歌曲的大小:但可以正常播放 player.reset(); player.setDataSource(currSoundFileUrl); System.out.println("yu.........

[1]程序起动,全屏幕广告盖住statusbar方法
    来源: 互联网  发布时间: 2014-02-18
程序启动,全屏幕广告盖住statusbar方法

首先plist里设置statusbar隐藏


之后新建一个全屏幕的UIWindow对象,属性需要设置一下

self.windowLevel = UIWindowLevelStatusBar + 1.0f;
然后设置它的hidden属性为NO


此时这个window对象就会全屏幕,然后可以设置statusbar显示,再初始化rootController之类的,这样,当全屏幕的广告消失时,后面的界面都已经初始完成了


    
[2] 优先级反转和解决办法
    来源: 互联网  发布时间: 2014-02-18
优先级反转和解决方法

优先级反转的描述:

假设任务1,任务2,任务3;他们的优先级顺序分别为1 > 2 > 3。有一个稀缺资源S,S由一个信号量控制为互斥访问。

  • 任务3正在执行,并申请到了资源S;
  • 任务1抢占了任务3的执行,任务3挂起,任务1执行;
  • 任务1申请资源S,发现被占用,所以挂起,任务3恢复执行;
  • 任务2抢占了任务3的执行,任务3挂起,任务2执行;
  • 任务2执行完毕,任务3恢复;
  • 任务3释放资源S,任务1抢占资源S,任务1执行,任务3挂起;
  • 任务1执行完毕,任务3执行。
  • 以上可以看出,任务2虽然比任务1优先级低,但是比任务1优先执行。也就是说任务1的优先级被降低到了任务3的级别。


    分析:

    由于稀缺资源S的独占性,任务3在申请到资源后,任务1必然会在任务3释放资源后才能执行完成。而任务2肯定会抢占任务3的执行。这个时候,要想任务1比任务2之前执行,有两种方法:任务3释放资源,任务2不能抢占任务3。

    • 任务3释放资源。这条路走不通,因为独占资源没有操作完成就释放,要么回滚,要么出错。(X)
    • 任务2不能抢占任务3。提升任务3的优先级高于任务2就可以了。(V)提高到多少?假如任务1和任务5共抢资源S,那么任务2、3、4都有可能抢去任务5的执行权,所以任务提升一定要和资源S被申请的最高优先级平等或者大于。对于有相同优先级的内核来说,任务5提升到任务1的优先级即可,对于优先级单一的内核,如ucos,就要提升到高一点。

    解决方法:

  • 优先级天花板。当任务3使用资源S时,就把任务3的优先级提升到能访问资源S的最高优先级,执行完成释放资源之后,把优先级再改回来;这样的方法,简单易行,解决了多个高优先级任务抢占资源S的问题。但是带来了一些缺点,就是不一定每次都有高优先级任务抢占资源S,每次都提升优先级是对CPU资源的一种浪费。
  • 优先级继承。当任务3使用资源S时,任务1抢占执行权,申请资源S,比较资源1和资源3的优先级,假如任务1优先级高,才提升任务3,提升到和任务1相同的优先级,当任务3释放资源后,将优先级再调整回来。相对于优先级天花板方法,相当于延后执行,克服了任务1的缺点,自己本身的特点是,逻辑复杂,需要操作系统支持相同优先级。在ucos中不容易实现。
  • 两者结合的方案:当任务3使用资源S时,任务1抢占执行权,申请资源S,比较资源1和资源3的优先级,假如任务1优先级高,才提升任务3,提升到能访问资源S的最高优先级,当任务3释放资源后,将优先级再调整回来。




  •     
    [3] 下载一首网络歌曲 该歌曲地址获取不到歌曲的大小,但可以通常播放
        来源: 互联网  发布时间: 2014-02-18
    下载一首网络歌曲 该歌曲地址获取不到歌曲的大小,但可以正常播放
    有些歌曲的下载地址,无法获得歌曲的大小:但可以正常播放

    player.reset();
    player.setDataSource(currSoundFileUrl);
    System.out.println("yuan网址:" + currSoundFileUrl);
    player.setAudioStreamType(AudioManager.STREAM_MUSIC);
    player.prepare();
    soundLength = player.getDuration();

    soundLength有时获取不到歌曲的大小,为0;

    这时最好是下载到本地再读取本地歌曲,用完时将歌曲删除:

    下面是下载该类歌曲的代码:


    new AsyncTask<Void, Void, Void>() {


    @Override
    protected Void doInBackground(Void... params) {


    try {
    URL url = new URL("http://218.94.93.115:8002/audioservernews/news/file2/news/tqh/air/download/52579f60c8f27d5f81c3d8b2?rate=wma/");


    HttpURLConnection conn = (HttpURLConnection) url.openConnection();
    conn.setRequestProperty("Accept-Encoding", "identity"); 
    int lene = conn.getContentLength();

    InputStream is = conn.getInputStream();

    BufferedInputStream bis = new BufferedInputStream(is);
    int len = -1;
    byte[] buf = new byte[1024 * 8];

    File file = new File("/mnt/sdcard/hello.wma");

    RandomAccessFile raf = new RandomAccessFile(file, "rw");
    raf.seek(0);

    while((len = bis.read(buf)) != -1){
    raf.write(buf, 0, len);
    }

    System.out.println("hello>>" + lene);


    } catch (MalformedURLException e) {
    e.printStackTrace();
    } catch (IOException e) {
    e.printStackTrace();
    }


    源码下载



    return null;
    }
    }.execute();




        
    最新技术文章:
    ▪Android开发之登录验证实例教程
    ▪Android开发之注册登录方法示例
    ▪Android获取手机SIM卡运营商信息的方法
    ▪Android实现将已发送的短信写入短信数据库的...
    ▪Android发送短信功能代码
    ▪Android根据电话号码获得联系人头像实例代码
    ▪Android中GPS定位的用法实例
    ▪Android实现退出时关闭所有Activity的方法
    ▪Android实现文件的分割和组装
    ▪Android录音应用实例教程
    ▪Android双击返回键退出程序的实现方法
    ▪Android实现侦听电池状态显示、电量及充电动...
    ▪Android获取当前已连接的wifi信号强度的方法
    ▪Android实现动态显示或隐藏密码输入框的内容
    ▪根据USER-AGENT判断手机类型并跳转到相应的app...
    ▪Android Touch事件分发过程详解
    ▪Android中实现为TextView添加多个可点击的文本
    ▪Android程序设计之AIDL实例详解
    ▪Android显式启动与隐式启动Activity的区别介绍
    ▪Android按钮单击事件的四种常用写法总结
    ▪Android消息处理机制Looper和Handler详解
    ▪Android实现Back功能代码片段总结
    ▪Android实用的代码片段 常用代码总结
    ▪Android实现弹出键盘的方法
    ▪Android中通过view方式获取当前Activity的屏幕截...
    ▪Android提高之自定义Menu(TabMenu)实现方法
    ▪Android提高之多方向抽屉实现方法
    ▪Android提高之MediaPlayer播放网络音频的实现方法...
    ▪Android提高之MediaPlayer播放网络视频的实现方法...
    ▪Android提高之手游转电视游戏的模拟操控
     


    站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3