Application中的初始化

每个进程开启走Application中的onCreate方法,保证一切进程在主线程中初始化,判断是否为主线程的方法如下:`public class HuaqianApplication extends Application {

public static HuaqianApplication app;


@Override
public void onCreate() {
    super.onCreate();
    if (quickStart()) {
        return;
    }

    if (isMainProcess()) {
    //初始化操作     
    }
}
public boolean quickStart() {
    if (StringUtil.contains(getCurProcessName(this), ":mini")) {
        return true;
    }
    return false;
}
    private boolean isMainProcess() {
    ActivityManager am = ((ActivityManager) getSystemService(Context.ACTIVITY_SERVICE));
    List<RunningAppProcessInfo> processInfos = am.getRunningAppProcesses();
    String mainProcessName = getPackageName();
    int myPid = Process.myPid();
    for (RunningAppProcessInfo info : processInfos) {
        if (info.pid == myPid && mainProcessName.equals(info.processName)) {
            return true;
        }
    }
    return false;
}
}
import java.text.NumberFormat;
import java.text.ParsePosition;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.regex.PatternSyntaxException;

import android.text.Html;
import android.text.Spanned;
import android.text.TextUtils;

public class StringUtil {

    // email
    private final static Pattern emailer = Pattern.compile("^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$");

    // phone
    private final static Pattern phoner = Pattern.compile("[1]\\d{10}");

    // alipay name
    private final static Pattern alipayName = Pattern.compile("^[\\u4e00-\\u9fa5]+$");

    /**
     * if string is empty
     *
     * @param input
     * @return boolean
     */
    public static boolean isEmpty(String input) {
        if (input == null || "".equals(input))
            return true;

        for (int i = 0; i < input.length(); i++) {
            char c = input.charAt(i);
            if (c != ' ' && c != '\t' && c != '\r' && c != '\n') {
                return false;
            }
        }
        return true;
    }

    /**
     * if email is valid
     *
     * @param email
     * @return
     */
    public static boolean isEmail(String email) {
        if (email == null || email.trim().length() == 0)
            return false;
        return emailer.matcher(email).matches();
    }

    public static boolean isAlipayName(String name) {
        if (isEmpty(name)) {
            return false;
        }
        return alipayName.matcher(name).matches();
    }

    /**
     * 半角转换为全角
     *
     * @param input
     * @return
     */
    public static String toDBC(String input) {
        char[] c = input.toCharArray();
        for (int i = 0; i < c.length; i++) {
            if (c[i] == 12288) {
                c[i] = (char) 32;
                continue;
            }
            if (c[i] > 65280 && c[i] < 65375)
                c[i] = (char) (c[i] - 65248);
        }
        return new String(c);
    }

    /**
     * encrypt phone number
     *
     * @param phone
     * @return
     */
    public static String encryptPhoneNumber(String phone) {
        if (phone == null) {
            return "*****";
        }
        if (phone.length() < 11) {
            return phone;
        }
        return phone.substring(0, 3) + "*****" + phone.substring(8, 11);
    }

    /**
     * convert user credit log's address
     *
     * @param address
     * @return
     */
    public static String convertUserDeliveryAddress(String address) {
        String[] info = address.split("#");
        StringBuffer text = new StringBuffer();
        text.append(info[1]) // province
                .append(info[2]) // city
                .append(info[3]) // zone
                .append(info[4]) // street
                .append("\n").append(info[0]) // name
                .append(" ").append(info[6]) // phone
        ;

        return text.toString();
    }

    public static boolean contains(String targetStr, String subStr) {
        if (isEmpty(targetStr) || isEmpty(subStr)) {
            return false;
        }
        return targetStr.contains(subStr);
    }

    public static String creditFormat(String creditStr) {
        StringBuffer buffer = new StringBuffer();
        if (creditStr.contains(".")) {
            int a = creditStr.indexOf(".");
            String string1 = creditStr.substring(0, a);
            String string2 = creditStr.substring(a + 1, creditStr.length());

            if (string2.length() == 1) {
                string2 = string2 + "0";
            } else {
                string2 = string2.substring(0, 2);
            }
            buffer = buffer.append(string1).append(".").append(string2);

        } else {
            buffer = buffer.append(creditStr).append(".00");
        }

        return buffer.toString();
    }

    public static String creditFormat(String creditStr, int floatDigit) {
        StringBuffer buffer = new StringBuffer();
        if (creditStr.contains(".")) {
            int a = creditStr.indexOf(".");
            String string1 = creditStr.substring(0, a);
            String string2 = creditStr.substring(a + 1, creditStr.length());

            for (int i = string2.length(); i < floatDigit; i++) {
                string2 = string2 + "0";
            }
            string2 = string2.substring(0, floatDigit);
            buffer = buffer.append(string1).append(".").append(string2);

        } else {
            buffer.append(creditStr).append(".");
            for (int i = 0; i < floatDigit; i++) {
                buffer = buffer.append("0");
            }
        }
        return buffer.toString();
    }

    public static String creFormat(String creditStr) {
        StringBuffer buffer = new StringBuffer();
        if (creditStr.contains(".")) {
            int a = creditStr.indexOf(".");
            String string1 = creditStr.substring(0, a);
            String string2 = creditStr.substring(a + 1, creditStr.length());

            if (string2.length() == 1) {
                string2 = string2 + "0";
            } else {
                string2 = string2.substring(0, 2);
            }
            if (Integer.parseInt(string2) > 0) {
                buffer = buffer.append(string1).append(".").append(string2);
            } else {
                buffer = buffer.append(string1);
            }

        } else {
            buffer = buffer.append(creditStr).append("");
        }

        return buffer.toString();
    }

    public static boolean isPhoneNum(String phoneNum) {

        if (phoneNum == null || phoneNum.trim().length() == 0)
            return false;
        return phoner.matcher(phoneNum).matches();
    }

    public static boolean isMobileNO(String mobiles) {
        boolean flag = false;
        try {
            mobiles = mobiles.replace(" ", "");
            mobiles = mobiles.replace("+86", "");
            Pattern p = Pattern.compile("^((1[0-9]))\\d{9}$");
            Matcher m = p.matcher(mobiles);
            flag = m.matches();
        } catch (Exception e) {
            flag = false;
        }
        return flag;
    }

    public static String currencyFormat(int credit) {
        NumberFormat nf = NumberFormat.getInstance();
        return StringUtil.creditFormat(nf.format(credit / 100.00f));
    }

    public static String currencyFormat(int credit, int floatDigit) {
        NumberFormat nf = NumberFormat.getInstance();
        return StringUtil.creditFormat(nf.format(credit / 100.00f), floatDigit);
    }

    public static String curFormat(int credit) {
        NumberFormat nf = NumberFormat.getInstance();
        return StringUtil.creFormat(nf.format(credit));
    }

    public static String specialLettersFilter(String str) throws PatternSyntaxException {
        String regEx = "[/\\!@#¥……~·——+{}:“’《》?/。,‘;】【=-·~&*()*?<>|\"\n\t`~!@#$%^&*()-_=+{\\[\\]}:;,.]";
        Pattern p = Pattern.compile(regEx);
        Matcher m = p.matcher(str);
        return m.replaceAll("").trim();
    }

    public static boolean isValidStr(String str) {
        if (isEmpty(str)) {
            return true;
        }
        byte[] nameBytes = str.getBytes();
        for (int i = 0; i < nameBytes.length; i += 3) {
            if ((nameBytes[i] & 0xF8) == 0xF0) {
                return false;
            }
        }
        return true;
    }

    public static String replace(int from, int to, String source, String element) {
        if (source == null || from == -1 || to == -1)
            return null;
        String tmp = source.substring(from, to);
        source = source.replace(tmp, element);
        return source;
    }

    // public static SpannableStringBuilder colorPartiallyString1(String
    // content, String colorString, int color) {
    // SpannableStringBuilder style = new SpannableStringBuilder(content);
    // int start = content.indexOf(colorString);
    // int end = start + colorString.length();
    // style.setSpan(new ForegroundColorSpan(color), start, end,
    // Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
    // return style;
    // }

    public static Spanned colorPartiallyString(String content, String colorString, int color) {
        int start = content.indexOf(colorString);
        int end = start + colorString.length();
        String result = "";
        if (start >= 0) {
            if (start > 0) {
                result += content.substring(0, start);
            }
            String colorStr = Integer.toHexString(color);
            if (colorStr.length() > 6) {
                colorStr = colorStr.substring(2);
            }
            result += "<font color='#" + colorStr + "'>" + content.substring(start, end) + "</font>";
            if (end < content.length()) {
                result += content.substring(end);
            }
            return Html.fromHtml(result);

        } else {
            return Html.fromHtml(content);
        }
    }

    public static String dateToString(Date currentTime, String format) {
        SimpleDateFormat formatter = new SimpleDateFormat(format);
        String dateString = formatter.format(currentTime);
        return dateString;
    }

    public static Date stringToDate(String strDate, String format) {
        SimpleDateFormat formatter = new SimpleDateFormat(format);
        ParsePosition pos = new ParsePosition(0);
        Date strtodate = formatter.parse(strDate, pos);
        return strtodate;
    }

    public static boolean equals(String left, String right) {
        if (!StringUtil.isEmpty(left)) {
            return left.equals(right);
        } else if (!StringUtil.isEmpty(right)) {
            return false;
        }
        return true;
    }

    public static String addSplitEveryChar(String content, String splite) {
        if (TextUtils.isEmpty(content)) {
            return content;
        }
        StringBuilder desBuilder = new StringBuilder();
        char[] contentChars = content.toCharArray();
        for (int i = 0; i < contentChars.length; i++) {
            desBuilder.append(contentChars[i]);
            desBuilder.append(splite);
        }
        return desBuilder.substring(0, desBuilder.length() - 1).toString();
    }

    public static String insertSpacingToString(String content, int smallNum) {
        if (TextUtils.isEmpty(content)) {
            return content;
        }

        StringBuilder dividerBuilder = new StringBuilder();
        for (int j = 0; j <= 2 * smallNum; j++) {
            if (j == smallNum) {
                dividerBuilder.append(" ");
            } else if (j < smallNum) {
                dividerBuilder.append("<small>");
            } else {
                dividerBuilder.append("</small>");
            }

        }
        String dividerStr = dividerBuilder.toString();

        StringBuilder contentBuilder = new StringBuilder();
        char[] contentChars = content.toCharArray();
        for (int i = 0; i < contentChars.length; i++) {
            contentBuilder.append(contentChars[i]);
            if (i < contentChars.length - 1) {
                contentBuilder.append(dividerStr);
            }
        }
        return contentBuilder.toString();
    }

    public static String formatNoDigitIfCan(int credit) {
        String formatCredit = currencyFormat(credit);
        if (formatCredit.endsWith(".00")) {
            return formatCredit.substring(0, formatCredit.length() - 3);
        }
        return formatCredit;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值