从本篇开始,讲解net.micode.fileexplorer.util工具包中的类。
这个包下的类,功能也比较单一和独立。很多代码的思想和实现,可以用于JavaWeb和Android等多种环境中。

一、单实例活动管理器ActivitiesManager
一个单实例的活动管理器,从方法的被调用程度来看,“徒有其名”。
registerActivity注册活动方法被使用了,而getActivity没有被使用,感觉明显有问题啊~
我目前的猜测:
大概是查看文件的时候,就会新建立一个活动,并且注册保存起来。
然后在需要的时候,使用getActivity获得,再做后续处理。
但是,getActivity方法压根没有被使用。

我猜测:“社区开源版”是被阉割了,代码是经过裁剪的?

package net.micode.fileexplorer.util;

import java.util.HashMap;

import android.app.Activity;
/**单实例活动管理器*/
public class ActivitiesManager {
public static final String ACTIVITY_FILE_VIEW = "FileView";
//@Deprecated没有被任何其他类使用
public static final String ACTIVITY_FILE_CATEGORY = "FileCategory";
//@Deprecated没有被任何其他类使用
public static final String ACTIVITY_TAB = "FileExplorerTab"; private static ActivitiesManager instance; private HashMap<String, Activity> activities = new HashMap<String, Activity>(); private ActivitiesManager() {
} // return true indicates successful, false indicates the name exists
//根本没有返回值,难道说“社区开源版”是被阉割的么?
//被FileViewActivity使用了,大概是查看文件的时候,就会新建立一个活动
public void registerActivity(String name, Activity a) {
activities.put(name, a);
} //@Deprecated没有被任何其他类使用
public Activity getActivity(String name) {
return activities.get(name);
} public static ActivitiesManager getInstance() {
if (instance == null)
instance = new ActivitiesManager();
return instance;
}
}

二、单实例设置工具类Settings
就1个作用,保存和查看“是否显示隐藏文件和上级目录”。
难道这个程序的设置或者说“首选项”太少了。

package net.micode.fileexplorer.util;
/**单实例设置工具类,保存1个选项,是否显示隐藏文件和上级目录“.”*/
public class Settings {
// whether show system and cache images, default not
private boolean mShowDotAndHiddenFiles;
private static Settings mInstance; private Settings() { } public static Settings instance() {
if(mInstance == null) {
mInstance = new Settings();
}
return mInstance;
} public boolean getShowDotAndHiddenFiles() {
return mShowDotAndHiddenFiles;
} public void setShowDotAndHiddenFiles(boolean s) {
mShowDotAndHiddenFiles = s;
}
}

三、关于单实例
   一个类,只建立一个实例。
   目前这2个类,都不是线程安全的。

小米开源文件管理器MiCodeFileExplorer-源码研究(2)-2个单实例工具类的更多相关文章

  1. 小米开源文件管理器MiCodeFileExplorer-源码研究(0)-初步研究

    2011年对着书本Android应用开发揭秘,写了2个月的HelloWorld.   现在想复习并深入,我没有耐心再去一点点地敲代码了.   4年前自己是个学生,实习,现在有工作,只能业余时间研究. ...

  2. Android开源项目 Universal imageloader 源码研究之Lru算法

    https://github.com/nostra13/Android-Universal-Image-Loader universal imageloader 源码研究之Lru算法 LRU - Le ...

  3. 小米开源文件管理器MiCodeFileExplorer-源码研究(6)-媒体文件MediaFile和文件类型MimeUtils

    接着之前的第4篇,本篇的2个类,仍然是工具类.MediaFile,媒体文件,定义了一大堆的常量,真正的有用的方法就几个.isAudioFileType.isVideoFileType之类的. Mime ...

  4. 小米开源文件管理器MiCodeFileExplorer-源码研究(1)-2个模型Model

    上篇说到,把小米的Java代码整理成了5个包,其中1个是net.micode.fileexplorer.model.这个包就2个模型类,最基本了,FileInfo和FavoriteItem. pack ...

  5. 小米开源文件管理器MiCodeFileExplorer-源码研究(5)-AsyncTask异步任务

    说明:本文的文字和代码,主要来自于网上的2篇文章. 第4篇的时候,提到了异步任务AsyncTask. 网上找了2篇文章学习下,copy网友的代码,稍微改了几个字,运行成功了. 在开发Android移动 ...

  6. 小米开源文件管理器MiCodeFileExplorer-源码研究(3)-使用最多的工具类Util

    Util.java,使用最广泛~代码中很多地方,都写了注释说明~基本不需要怎么解释了~ package net.micode.fileexplorer.util; import java.io.Fil ...

  7. 开源播放器ijkplayer源码结构

    ijkplayer核心源码主要在ijkmedia文件夹下ijkplayer.ijksdl及ijkutils. 注:tag k0.3.1 player: remove ijkutil android相关 ...

  8. 在CentOs7源码安装mysql-5.6.35单实例数据库

    首先安装依赖包,避免在安装过程中出现问题 [root@bogon liuzhen]# yum -y install gcc gcc-c++[root@bogon liuzhen]# yum -y in ...

  9. 小米开源文件管理器MiCodeFileExplorer-源码研究(9)-入口分析

    AndroidManifest.xml是Android应用程序最重要的配置文件. 入口文件和intent-filter <application android:icon="@draw ...

随机推荐

  1. BZOJ 3637: Query on a tree VI LCT_维护子树信息_点权转边权_好题

    非常喜欢这道题. 点权转边权,这样每次在切断一个点的所有儿子的时候只断掉一条边即可. Code: #include <cstring> #include <cstdio> #i ...

  2. ES6学习笔记(十六)async函数

    1.含义 ES2017 标准引入了 async 函数,使得异步操作变得更加方便. async 函数是什么?一句话,它就是 Generator 函数的语法糖,号称异步的终极解决方案. 前文有一个 Gen ...

  3. Python组织文件 实践:将带有美国风格日期的文件改名为欧洲风格日期

    描述:假设有这样一个任务,你需要将文件名中含有美国风格日期(MM-DD-YYYY)的部分更换为欧洲风格日期(DD-MM-YYYY),并且需要你处理的文件多达上千个 分析:检查当前工作目录的所有文件名, ...

  4. [WC2011]最大XOR和路径(线性基)

    P4151 [WC2011]最大XOR和路径 题目描述 XOR(异或)是一种二元逻辑运算,其运算结果当且仅当两个输入的布尔值不相等时才为真,否则为假. XOR 运算的真值表如下( 1 表示真, 0 表 ...

  5. File的getPath()和getAbsolutePath()和getCanonicalPath()的差别

    这几个方法是有一次无意的发现,我当时也不知道什么意思,就百度了,查到了一些列子: 原文地址http://www.blogjava.net/dreamstone/archive/2007/08/08/1 ...

  6. UI_UISegmentedControl 控件

    创建控件 - (void)createSegmentControl { UISegmentedControl *segmentedControl = [[UISegmentedControl allo ...

  7. 仿即刻app"猜你喜欢"切换控件

    最近在即刻里看到即刻的"猜你喜欢"的板块,觉得效果很赞. 当点击"换一换"时,上面三个条目程序切换效果,并且三个条目的切换以不同的速度进行. 于是开始想办法撸出 ...

  8. Hue的三大特点、三大功能和架构

    不多说,直接上干货! Hue 是 Cloudera 的大数据 Web 工具 官方访问网站 : http://gethue.com/ GitHub : https://github.com/cloude ...

  9. netflix zuul 1.x与zuul2.x之比较

    1.zuul 1.x的架构如下所示: 线程模型: 其web应用的web.xml <?xml version="1.0" encoding="UTF-8"? ...

  10. python调用Java代码,完毕JBPM工作流application

    1.缘由 有一庞大Python django webproject,要引入工作流引擎,像OA一样.方便的流程控制与管理.Python或django关于工作流的开源插件,稀少,并且弱爆了,终于选用jav ...