当前位置:  编程技术>移动开发
本页文章导读:
    ▪DownloadManager施用技巧        DownloadManager使用技巧最近在一个项目中需要下载服务器数据,本来是自己写个线程,后来发现2.3后有个Downloadmanager类可以用,这个类功能实在强大,进度条有,下载完了也会发出广播,还能.........
    ▪ 动作被父view阻截导致viewpager滑动不顺畅        动作被父view拦截导致viewpager滑动不顺畅viewpager放在scrollview中时,滑动viewpager里的内容会不顺畅,原因是稍微有点上下的动作就会被scrollview截去了,为了解决这个问题,重写了scrollview里的方.........
    ▪ 用索引删除数组元素,防止删除元素对索引造成干扰的两种解决办法       用索引删除数组元素,防止删除元素对索引造成干扰的两种解决方法方法一:排序法 把要删除的索引从大到小排列。 从元素的索引大的元素开始向索引小的元素顺序删除。(后面的元素.........

[1]DownloadManager施用技巧
    来源: 互联网  发布时间: 2014-02-18
DownloadManager使用技巧

最近在一个项目中需要下载服务器数据,本来是自己写个线程,后来发现2.3后有个Downloadmanager类可以用,这个类功能实在强大,进度条有,下载完了也会发出广播,还能得到有关下载任务的任何信息,实在方便,这里介绍下我用到的一些功能吧。

首先,要下载东西的话,把下载地址给downloadmanager就可以了,如下

DownloadManager downloadManager = (DownloadManager)
                                getSystemService(DOWNLOAD_SERVICE);
                        File file = new File(dstPath);
                        Uri dstUri = Uri.fromFile(file);
                        DownloadManager.Request dwreq = new DownloadManager.Request(
                                uri);
                        dwreq.setDestinationUri(dstUri);
                        downloadManager.enqueue(dwreq);
剩下的就不用我们管了,如果我们要获得这个下载的信息,Query这个类就好了,可以看看文档。

我这里想收到下载完成的广播后查看下刚刚下载完的这个东西是什么,这么实现的:

DownloadManager dm = (DownloadManager)getSystemService(DOWNLOAD_SERVICE);
        long downloadId = getLongExtra(DownloadManager.EXTRA_DOWNLOAD_ID, 0);
        Query query = new Query();
        query.setFilterById(downloadId);
        Cursor cur = dm.query(query);
        if (cur.moveToFirst()) {
            int columnIndex = cur.getColumnIndex(DownloadManager.COLUMN_STATUS);
            if (DownloadManager.STATUS_SUCCESSFUL == cur.getInt(columnIndex)) {
                String uriString = cur.getString(cur.getColumnIndex(DownloadManager.COLUMN_LOCAL_URI));}
具体什么意思,大家看看文档就明白了,这里不再赘述了。

    
[2] 动作被父view阻截导致viewpager滑动不顺畅
    来源: 互联网  发布时间: 2014-02-18
动作被父view拦截导致viewpager滑动不顺畅

viewpager放在scrollview中时,滑动viewpager里的内容会不顺畅,原因是稍微有点上下的动作就会被scrollview截去了,为了解决这个问题,重写了scrollview里的方法,顺利解决。也就是重写onInterceptTouchEvent方法,定义方法判断viewpager上的滑动的动作不会被scrollview截去。

下面是重写scrollview的源码:

public class MyScrollView extends ScrollView {
    private GestureDetector mGestureDetector;
    View.OnTouchListener mGestureListener;

    public MyScrollView(Context context, AttributeSet attrs) {
        super(context, attrs);
        mGestureDetector = new GestureDetector(context, new YScrollDetector());
        setFadingEdgeLength(0);
    }

    @Override
    public boolean onInterceptTouchEvent(MotionEvent ev) {
        return super.onInterceptTouchEvent(ev) && mGestureDetector.onTouchEvent(ev);
    }

    // Return false if we're scrolling in the x direction  
    class YScrollDetector extends SimpleOnGestureListener {
        @Override
        public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
            if(Math.abs(distanceY) > Math.abs(distanceX)) {
                return true;
            }
            return false;
        }
    }
}



    
[3] 用索引删除数组元素,防止删除元素对索引造成干扰的两种解决办法
    来源: 互联网  发布时间: 2014-02-18
用索引删除数组元素,防止删除元素对索引造成干扰的两种解决方法

方法一:排序法


把要删除的索引从大到小排列。


从元素的索引大的元素开始向索引小的元素顺序删除。(后面的元素删除不回影响索引小的元素)


方法二:替换删除标志法

NSString * aObj = @"";//替换删除标志

            for (int i = 0; i < count; i++)//因为第一位不能编辑所以要去除第一位的搜索

            {

                NSInteger index = [array index];//数组存的对象是indexPath,就是每个cell的地址,通过它可以索引到它在tableview的位置。

                [dataArray replaceObjectAtIndex:index withObject:aObj];

              

            }

            

            [dataArray removeObject:aObj];






    
最新技术文章:
▪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