Application中的初始化
来源:互联网 发布:linux mint 18 编辑:程序博客网 时间:2024/06/06 03:00
每个进程开启走Application中的onCreate方法,保证一切进程在主线程中初始化,判断是否为主线程的方法如下:`public class HuaqianApplication extends Application {
public static HuaqianApplication app;@Overridepublic 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; }}
阅读全文
0 0
- Application中的初始化
- Application初始化
- Retriofit,Fresco,Greendao在application中的初始化配置
- Retriofit,Fresco,Greendao在Application中的初始化配置工具类
- Flex Application 初始化顺序
- Flex Application 初始化顺序
- Flex Application 初始化顺序
- Flex Application 初始化顺序
- Flex Application初始化顺序
- Flex Application初始化顺序
- Flex Application 初始化顺序
- Flex Application初始化顺序
- ServletContext(Application)初始化配置文件
- Flex Application 初始化顺序
- Application的初始化顺序
- Flex Application 初始化顺序
- Flex Application 初始化顺序
- Flex Application 初始化顺序
- Python 学习日知录(五)- 配置文件之二
- 谈一谈UIScrollView的scrollsToTop属性
- 【HTTP】Fiddler(一)
- 关于使用WMI获取杀毒软件信息
- PAT 1034 Head of a Gang(图遍历+BFS)
- Application中的初始化
- google/seq2seq项目infer中的bug
- 在YII2中使用swiftmailer给多账号发送邮件和附件
- CS231n课程笔记翻译
- Spring中classpath中通配符号的使用
- 关于zTree的使用
- .net 判断datatable当中是否存在列名和具体数据
- JAVA JSON
- spring aop 报错Pointcut is not well-formed: expecting ‘name pattern’ at character position 48 executi