当前位置:   article > 正文

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

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


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


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


  1. package net.micode.fileexplorer.util;
  2. import java.util.HashMap;
  3. import android.app.Activity;
  4. /**单实例活动管理器*/
  5. public class ActivitiesManager {
  6. public static final String ACTIVITY_FILE_VIEW = "FileView";
  7. //@Deprecated没有被任何其他类使用
  8. public static final String ACTIVITY_FILE_CATEGORY = "FileCategory";
  9. //@Deprecated没有被任何其他类使用
  10. public static final String ACTIVITY_TAB = "FileExplorerTab";
  11. private static ActivitiesManager instance;
  12. private HashMap<String, Activity> activities = new HashMap<String, Activity>();
  13. private ActivitiesManager() {
  14. }
  15. // return true indicates successful, false indicates the name exists
  16. //根本没有返回值,难道说“社区开源版”是被阉割的么?
  17. //被FileViewActivity使用了,大概是查看文件的时候,就会新建立一个活动
  18. public void registerActivity(String name, Activity a) {
  19. activities.put(name, a);
  20. }
  21. //@Deprecated没有被任何其他类使用
  22. public Activity getActivity(String name) {
  23. return activities.get(name);
  24. }
  25. public static ActivitiesManager getInstance() {
  26. if (instance == null)
  27. instance = new ActivitiesManager();
  28. return instance;
  29. }
  30. }




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


  1. package net.micode.fileexplorer.util;
  2. /**单实例设置工具类,保存1个选项,是否显示隐藏文件和上级目录“.”*/
  3. public class Settings {
  4. // whether show system and cache images, default not
  5. private boolean mShowDotAndHiddenFiles;
  6. private static Settings mInstance;
  7. private Settings() {
  8. }
  9. public static Settings instance() {
  10. if(mInstance == null) {
  11. mInstance = new Settings();
  12. }
  13. return mInstance;
  14. }
  15. public boolean getShowDotAndHiddenFiles() {
  16. return mShowDotAndHiddenFiles;
  17. }
  18. public void setShowDotAndHiddenFiles(boolean s) {
  19. mShowDotAndHiddenFiles = s;
  20. }
  21. }




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

转载于:https://www.cnblogs.com/qitian1/p/6462647.html

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/69406
推荐阅读
相关标签
  

闽ICP备14008679号