Application工具方法

news/2024/7/5 6:40:06

//注册这个接口

registerActivityLifecycleCallbacks(activityLifecycleCallbacks);

}

@Override

public void onTerminate() {

//注销这个接口。

unregisterActivityLifecycleCallbacks(activityLifecycleCallbacks);

super.onTerminate();

}

public static List<Activity> activitys = new ArrayList<>();

public static Activity showActivitys;

private ActivityLifecycleCallbacks activityLifecycleCallbacks = new ActivityLifecycleCallbacks() {

@Override

public void onActivityCreated(Activity activity, Bundle savedInstanceState) {

activitys.add(activity);

}

@Override

public void onActivityDestroyed(Activity activity) {

activitys.remove(activity);

}

@Override

public void onActivityStarted(Activity activity) {

}

@Override

public void onActivityResumed(Activity activity) {

showActivitys = activity;

LgqLogPlus.e("当前打开的页面为:"+activity.getClass().getSimpleName());

}

@Override

public void onActivityPaused(Activity activity) {

}

@Override

public void onActivityStopped(Activity activity) {

}

@Override

public void onActivitySaveInstanceState(Activity activity, Bundle outState) {

}

};

}

、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、

public class LgqLogPlus {

private static int sCurrentLogLevel = Log.DEBUG;

private static String sPrefix = null;

@IntDef({ Log.VERBOSE, Log.DEBUG, Log.INFO, Log.WARN, Log.ERROR })

@Retention(RetentionPolicy.SOURCE)

public @interface LogLevel {

}

/**

* 初始化LogPlus,可选

*

* @param prefix Tag前缀,可以防止 RIL,IMS,AT,GSM,STK,CDMA,SMS 开头的log不会被打印

* @param logLevel 打log等级

*/

public static void init(String prefix, @LogLevel int logLevel) {

if (prefix != null) {

prefix = prefix.trim();

if (prefix.length() > 0) {

sPrefix = prefix;

}

}

sCurrentLogLevel = logLevel;

}

public static void v(@Nullable String tag, String msg, @Nullable Throwable tr) {

log(Log.VERBOSE, tag, msg, tr);

}

public static void v(@Nullable String tag, String msg) {

log(Log.VERBOSE, tag, msg, null);

}

public static void v(String msg, @Nullable Throwable tr) {

log(Log.VERBOSE, null, msg, tr);

}

public static void v(String msg) {

log(Log.VERBOSE, null, msg, null);

}

public static void d(@Nullable String tag, String msg, @Nullable Throwable tr) {

log(Log.DEBUG, tag, msg, tr);

}

public static void d(@Nullable String tag, String msg) {

log(Log.DEBUG, "lgq---------"+tag, msg, null);

}

public static void d(String msg, @Nullable Throwable tr) {

log(Log.DEBUG, null, msg, tr);

}

public static void d(String msg) {

log(Log.DEBUG, null, "lgq---dcg------"+msg, null);

}

public static void i(@Nullable String tag, String msg, @Nullable Throwable tr) {

log(Log.INFO, tag, msg, tr);

}

public static void i(@Nullable String tag, String msg) {

log(Log.INFO, tag, msg, null);

}

public static void i(String msg, @Nullable Throwable tr) {

log(Log.INFO, null, msg, tr);

}

public static void i(String msg) {

log(Log.INFO, null, "lgq---dcgiii------"+msg, null);

// log(Log.INFO, null, msg, null);

}

public static void w(@Nullable String tag, String msg, @Nullable Throwable tr) {

log(Log.WARN, tag, msg, tr);

}

public static void w(@Nullable String tag, String msg) {

log(Log.WARN, tag, msg, null);

}

public static void w(String msg, @Nullable Throwable tr) {

log(Log.WARN, null, msg, tr);

}

public static void w(String msg) {

log(Log.WARN, null, msg, null);

}

public static void e(@Nullable String tag, String msg, @Nullable Throwable tr) {

log(Log.ERROR, tag, msg, tr);

}

public static void e(@Nullable String tag, String msg) {

log(Log.ERROR, tag, msg, null);

}

public static void e(String msg, @Nullable Throwable tr) {

log(Log.ERROR, null, msg, tr);

}

public static void e(String msg) {

log(Log.ERROR, null, "lgq---dcg错误------"+msg, null);

}

private static void log(int logLevel, String tag, String msg, Throwable tr) {

if (logLevel < sCurrentLogLevel) {

return;

}

StackTraceElement e = Thread.currentThread().getStackTrace()[4];

String fileName = e.getFileName();

int lineNum = e.getLineNumber();

String methodName = e.getMethodName();

StringBuilder sb = new StringBuilder();

sb.append(methodName)

.append('(')

.append(fileName)

.append(':')

.append(lineNum)

.append(')')

.append(msg);

msg = sb.toString();

sb.delete(0, sb.length());

// 注意,如果tag是"IMS"开头的(还有其他),log会不打印,所以加个"前缀_"

// 参考这里 http://stackoverflow.com/a/36469141/5324526

if (sPrefix != null) {

sb.append(sPrefix).append('_');

}

if (tag == null || tag.length() == 0 || tag.trim().length() == 0) {

String className = e.getClassName();

int index = className.lastIndexOf('.') + 1;

sb.append(className, index, className.length());

} else {

sb.append(tag);

}

tag = sb.toString();

if (tr == null) {

switch (logLevel) {

case Log.VERBOSE:

Log.v(tag, msg);

break;

case Log.DEBUG:

Log.d(tag, msg);

break;

case Log.INFO:

Log.i(tag, msg);

break;

case Log.WARN:

Log.w(tag, msg);

break;

case Log.ERROR:

Log.e(tag, msg);

break;

}

} else {

switch (logLevel) {

case Log.VERBOSE:

Log.v(tag, msg, tr);

break;

case Log.DEBUG:

Log.d(tag, msg, tr);

break;

case Log.INFO:

Log.i(tag, msg, tr);

break;

case Log.WARN:

Log.w(tag, msg, tr);

break;

case Log.ERROR:

Log.e(tag, msg, tr);

break;

}

}

}

}


http://lihuaxi.xjx100.cn/news/980176.html

相关文章

剑指offer JZ6 从尾到头打印链表

Java 剑指offer JZ6 从尾到头打印链表 文章目录Java 剑指offer JZ6 从尾到头打印链表一、题目描述二、递归写法三、栈方法使用Java的递归和栈解决从尾到头打印链表的问题 一、题目描述 输入一个链表的头节点&#xff0c;按链表从尾到头的顺序返回每个节点的值&#xff08;用数组…

如何正确努力?7 分钟重新认识冰山模型。

我明明很努力&#xff0c;但好像没什么卵用&#xff1f;”这是很多职场人士或者即将进入职场的人容易产生的困惑。美国著名社会心理学家麦克利兰在 1973 年所提出的素质冰山模型大概能解释这种情况。不过&#xff0c;让我们先从【冰山一角】这个词开始。当你听到它&#xff0c;…

k8s 部署 skywalking 并持久化到es

1、k8s中安装部署 skywalking skywalking集群情况下需要保证用同一数据源&#xff0c;这里我们存储方式改为es 1.1 部署elasticsearch docker run -it -d -p 9200:9200 -p 9300:9300 -e ES_JAVA_OPTS"-Xms256m -Xmx256m" -e "discovery.typesingle-node"…

nginx配置维护页面的方法

一、描述 本人公司一般发版是不停项目的&#xff0c;但是遇到特殊情况、就不得不停项目发版&#xff0c;用户就会有几个小时不能使用。 停项目发版时&#xff0c;会修改下nginx&#xff0c;让所有请求都跳转到维护页面&#xff0c;在此记录下修改方法。 二、nginx配置维护页…

扩展欧几里得算法及其应用

前言 由于数论的板子真的很抽象&#xff0c;也很难背&#xff0c;所以特此记录扩展欧几里得算法的板子和它的用途 本篇文章只涉及应用&#xff0c;不涉及证明&#xff0c;如需理解证明还请各位移步其他优秀的讲解&#xff01; 扩展欧几里得算法 先粘一下板子的代码 typedef lo…

每天5分钟快速玩转机器学习:贝叶斯算法的局限性

本文重点 贝叶斯算法的应用很广泛,其中最经典的应用就是垃圾邮件的分类,本节课程通过垃圾邮件的例子来看一下贝叶斯算法存在的一些问题,我们应该如何解决它? 垃圾邮件分类 给定一封电子邮件,我们如何判断这封电子邮件是垃圾邮件还是正常邮件,这是机器学习中的二分类问…

Android13 音量曲线调整

Android13 音量曲线调整 Android13 上配置文件的路径&#xff1a; /vendor/sprd/modules/audio/engineconfigurable_apm/工程目录/system/etc/audio_engine_config/audio_policy_engine_stream_volumes.xml /vendor/sprd/modules/audio/engineconfigurable_apm/工程目录/sys…

Oracle 数据库相关信息清单列表

Oracle 数据库相关信息清单列表 一、设置Oracle安装目录 Oracle基目录(ORACLE_BASE):D:\databases\oracle\oracle_11g\app\Administrator 软件位置(ORACLE_HOME):D:\databases\oracle\oracle_11g\app\Administrator\product\11.2.0\dbhome_1 数据库文件位置:D:\databa…