小米开源文件管理器MiCodeFileExplorer-源码研究(2)-2个单实例工具类
从本篇开始,讲解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个单实例工具类的更多相关文章
- 小米开源文件管理器MiCodeFileExplorer-源码研究(0)-初步研究
2011年对着书本Android应用开发揭秘,写了2个月的HelloWorld. 现在想复习并深入,我没有耐心再去一点点地敲代码了. 4年前自己是个学生,实习,现在有工作,只能业余时间研究. ...
- Android开源项目 Universal imageloader 源码研究之Lru算法
https://github.com/nostra13/Android-Universal-Image-Loader universal imageloader 源码研究之Lru算法 LRU - Le ...
- 小米开源文件管理器MiCodeFileExplorer-源码研究(6)-媒体文件MediaFile和文件类型MimeUtils
接着之前的第4篇,本篇的2个类,仍然是工具类.MediaFile,媒体文件,定义了一大堆的常量,真正的有用的方法就几个.isAudioFileType.isVideoFileType之类的. Mime ...
- 小米开源文件管理器MiCodeFileExplorer-源码研究(1)-2个模型Model
上篇说到,把小米的Java代码整理成了5个包,其中1个是net.micode.fileexplorer.model.这个包就2个模型类,最基本了,FileInfo和FavoriteItem. pack ...
- 小米开源文件管理器MiCodeFileExplorer-源码研究(5)-AsyncTask异步任务
说明:本文的文字和代码,主要来自于网上的2篇文章. 第4篇的时候,提到了异步任务AsyncTask. 网上找了2篇文章学习下,copy网友的代码,稍微改了几个字,运行成功了. 在开发Android移动 ...
- 小米开源文件管理器MiCodeFileExplorer-源码研究(3)-使用最多的工具类Util
Util.java,使用最广泛~代码中很多地方,都写了注释说明~基本不需要怎么解释了~ package net.micode.fileexplorer.util; import java.io.Fil ...
- 开源播放器ijkplayer源码结构
ijkplayer核心源码主要在ijkmedia文件夹下ijkplayer.ijksdl及ijkutils. 注:tag k0.3.1 player: remove ijkutil android相关 ...
- 在CentOs7源码安装mysql-5.6.35单实例数据库
首先安装依赖包,避免在安装过程中出现问题 [root@bogon liuzhen]# yum -y install gcc gcc-c++[root@bogon liuzhen]# yum -y in ...
- 小米开源文件管理器MiCodeFileExplorer-源码研究(9)-入口分析
AndroidManifest.xml是Android应用程序最重要的配置文件. 入口文件和intent-filter <application android:icon="@draw ...
随机推荐
- vue 退出动画无效解决方法
遇到一个问题:给模态框加入退出动画,进入的动画效果是有的,可是退出的动画就没有了. 写个简单的结构: <div class="mask" v-show="warni ...
- HDU-4310 Hero 贪心问题
题目链接:https://cn.vjudge.net/problem/HDU-4310 题意 打dota,队友太菜,局势变成1vN.还好你开了挂,hp无限大(攻击却只有一点每秒-_-). 但是你并不想 ...
- 在线运行python代码-python代码运行助手
https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001432523496782e ...
- 03016_DBCP连接池
1.连接池概述 (1)用池来管理Connection,这样可以重复使用Connection: (2)有了池,所以我们就不用自己来创建Connection,而是通过池来获取Connection对象: ( ...
- CodeForces 316c1 Tidying Up
Tidying Up Time Limit: 4000ms Memory Limit: 262144KB This problem will be judged on CodeForces. Orig ...
- Units are seconds since 1970.
在Android实际开发过程中常常会碰到以秒为单位的日期.这时能够依据须要将他们进行格式化处理,详细过程例如以下: long seconds=Long.parseLong("14058896 ...
- vue21 slot占位
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 自定义分页控件-基于Zhifeiya的分页控件改版
基于Zhifeiya的分页控件改版的分页. html显示代码: <div class="pagelist"> {{.pagerHtml}} </div> c ...
- Installation from source on Windows 7 with Visual C++2012
在这部分说明里,你将会学习到在配备有Visual C++的Windows平台下从源码安装ViSP.下面的这些安装步骤已经在32位Windows系统,CMake3.1和Visual Studio 201 ...
- Codefroces B. Hamming Distance Sum
Genos needs your help. He was asked to solve the following programming problem by Saitama: The lengt ...