L*MM 文件管理器小结

1、点击local disk device的时候,刚好传过来的index=0;接着在 update top data的时候点击index=0返回;

大概的过程是:点击了local disk decive之后,触发了按键响应,然后获取到了index,之后然后handler到主线程进行刷新显示内容,然后因为加了标志,这里还要返回

到上一层,所以又逻辑控制点击了进入到devices页面的index=0的back键,所以此时又brower back键了,然后又handler通知主线程top data browser,

然后是handler通知update top data ,在browser某data时打开progressBar,然后在update某data时关闭progressBar。


2、在update top data不像我在update local data时,clickbtn设置为0放在click前面而是后面,主要是因为描绘切换时候的前进的那一页:在这里为显示usb devices的数量,是不大可能超过10个的,所以不论是拿list或者grid描绘都不会错,关键就是根据最后的flag标志来显示正确的view来显示数据即可


3、获取Android存储设备列表

this.storageManager = (StorageManager) activity.getApplicationContext()
                .getSystemService(Context.STORAGE_SERVICE);


StorageVolume[] volumes = storageManager.getVolumeList();
        // At present there is no any disk mount
        if (volumes == null || volumes.length == 0) {
            return;
        }


        String path = "";
        // List all your mount disk
        for (StorageVolume item : volumes) {
            path = item.getPath();
            String state = storageManager.getVolumeState(path);
            // Mount is not successful
            if (state == null || !state.equals(Environment.MEDIA_MOUNTED)) {
                continue;


                // Successful mount
            } else {
                BaseData bd = new BaseData(Constants.FILE_TYPE_DIR);
                // bd.setName(storageManager.getVolumeLabel(path));
                String name = path.substring(path.lastIndexOf("/") + 1,
                        path.length());
                bd.setName(name);
                bd.setPath(path);
                deviceList.add(bd);
            }
        }
getVolumeList本身应该是一个隐藏了的方法的,所以这里调用,应该在源码做了变动(没办法,我们自己改源码,就是这么粗暴)

state是用来判断有没有mount成功

4、根目录怎么获取?

this.currentDirectory = Tools.getUSBMountedPath();
public static String getUSBMountedPath() {
        return Environment.getExternalStorageDirectory().getParent();
    }

5、建立一个公共类,保存扫描下来的数据,分集合、排好序,放好。等候使用

你可能感兴趣的:(L*MM开发小结)