• 【ListViewJson】【com.demo.app】【AppConfig】源码分析及其在工程中作用


    源码如下:

    package com.demo.app;
    
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.util.Properties;
    
    import android.content.Context;
    import android.content.SharedPreferences;
    import android.preference.PreferenceManager;
    
    import com.demo.app.common.StringUtils;
    
    /**
     * 应用程序配置类:用于保存用户相关信息及设置
     * @version 1.0
     * @created 2012-3-21
     */
    public class AppConfig {
        public static boolean isFinish=true;//主要针对 弹出dialog 是否返回
        private final static String APP_CONFIG = "config";
        
        public final static String TEMP_TWEET = "temp_tweet";
        public final static String TEMP_TWEET_IMAGE = "temp_tweet_image";
        public final static String TEMP_MESSAGE = "temp_message";
        public final static String TEMP_COMMENT = "temp_comment";
        public final static String TEMP_POST_TITLE = "temp_post_title";
        public final static String TEMP_POST_CATALOG = "temp_post_catalog";
        public final static String TEMP_POST_CONTENT = "temp_post_content";
        
        public final static String CONF_APP_UNIQUEID = "APP_UNIQUEID";
        public final static String CONF_COOKIE = "cookie";
        public final static String CONF_ACCESSTOKEN = "accessToken";
        public final static String CONF_ACCESSSECRET = "accessSecret";
        public final static String CONF_EXPIRESIN = "expiresIn";
        public final static String CONF_LOAD_IMAGE = "perf_loadimage";
        public final static String CONF_SCROLL = "perf_scroll";
        public final static String CONF_HTTPS_LOGIN = "perf_httpslogin";
        public final static String CONF_VOICE = "perf_voice";
        
        private Context mContext;
        private static AppConfig appConfig;
        
        public static AppConfig getAppConfig(Context context)
        {
            if(appConfig == null){
                appConfig = new AppConfig();
                appConfig.mContext = context;
            }
            return appConfig;
        }
        
        /**
         * 获取Preference设置
         */
        public static SharedPreferences getSharedPreferences(Context context)
        {
            return PreferenceManager.getDefaultSharedPreferences(context);
        }
        
        /**
         * 是否加载显示文章图片
         */
        public static boolean isLoadImage(Context context)
        {
            return getSharedPreferences(context)
                    .getBoolean(CONF_LOAD_IMAGE, true);
        }    
        
        public String getCookie(){
            return get(CONF_COOKIE);
        }
    
        public void setAccessToken(String accessToken){
            set(CONF_ACCESSTOKEN, accessToken);
        }
        
        public String getAccessToken(){
            return get(CONF_ACCESSTOKEN);
        }
        
        public void setAccessSecret(String accessSecret){
            set(CONF_ACCESSSECRET, accessSecret);
        }
        
        public String getAccessSecret(){
            return get(CONF_ACCESSSECRET);
        }
        
        public void setExpiresIn(long expiresIn){
            set(CONF_EXPIRESIN, String.valueOf(expiresIn));
        }
        
        public long getExpiresIn(){
            return StringUtils.toLong(get(CONF_EXPIRESIN));
        }
        
        
        public String get(String key)
        {
            Properties props = get();
            return (props!=null)?props.getProperty(key):null;
        }
        
        public Properties get() {
            FileInputStream fis = null;
            Properties props = new Properties();
            try{
                //读取files目录下的config
                //fis = activity.openFileInput(APP_CONFIG);
                
                //读取app_config目录下的config
                File dirConf = mContext.getDir(APP_CONFIG, Context.MODE_PRIVATE);
                fis = new FileInputStream(dirConf.getPath() + File.separator + APP_CONFIG);
                
                props.load(fis);
            }catch(Exception e){
            }finally{
                try {
                    fis.close();
                } catch (Exception e) {}
            }
            return props;
        }
        
        private void setProps(Properties p) {
            FileOutputStream fos = null;
            try{
                //把config建在files目录下
                //fos = activity.openFileOutput(APP_CONFIG, Context.MODE_PRIVATE);
                
                //把config建在(自定义)app_config的目录下
                File dirConf = mContext.getDir(APP_CONFIG, Context.MODE_PRIVATE);
                File conf = new File(dirConf, APP_CONFIG);
                fos = new FileOutputStream(conf);
                
                p.store(fos, null);
                fos.flush();
            }catch(Exception e){    
                e.printStackTrace();
            }finally{
                try {
                    fos.close();
                } catch (Exception e) {}
            }
        }
    
        public void set(Properties ps)
        {
            Properties props = get();
            props.putAll(ps);
            setProps(props);
        }
        
        public void set(String key,String value)
        {
            Properties props = get();
            props.setProperty(key, value);
            setProps(props);
        }
        
        public void remove(String...key)
        {
            Properties props = get();
            for(String k : key)
                props.remove(k);
            setProps(props);
        }
    }
  • 相关阅读:
    视频直播:Windows中各类画面源的截取和合成方法总结
    短视频技术详解:Android端的短视频开发技术
    视频直播关键技术:流畅、拥塞和延时追赶
    视频直播技术详解:直播的推流调度
    直播技术:从性能参数到业务大数据,浅谈直播CDN服务监控
    音视频通话:小议音频处理与压缩技术
    pip命令报错“no perl script found in input”
    python常见面试题讲解(三)明明的随机数
    如何使用photoshop修改图片的像素大小(分辨率)
    VMware Workstation如何修改弹出释放快捷键
  • 原文地址:https://www.cnblogs.com/hikigaya-yukino/p/4171381.html
Copyright © 2020-2023  润新知