当前位置: 首页 > news >正文

Application工具方法

//注册这个接口

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://www.lryc.cn/news/38031.html

相关文章:

  • 电脑游戏怎么录屏?其实很简单,只需要简单3步
  • 【设计模式】go语言中的 [函数选项,单例,工厂,责任链] 常用的设计模式
  • 2017系统分析师案例分析真题背记内容
  • C++和C的区别
  • 【React教程】一、React简介
  • 运动蓝牙耳机什么牌子好,比较好的运动蓝牙耳机推荐
  • [深入理解SSD系列 闪存实战2.1] NAND FLASH特性串烧 | 不了解闪存特性,你能用好闪存产品吗?
  • DJI ROS dji_sdk 源码分析|整体框架
  • HT32合泰单片机开发环境搭建和配置教程
  • 动态内存分配之伙伴算法
  • CGAL 根据扫描线方向和角度对法向量进行重定向
  • 一个C#开发的开源的快速启动工具
  • Paddle项目调试记录
  • 3月11日,30秒知全网,精选7个热点
  • C win32基础学习(四)
  • Java 日期时间API(Java 8及以上)
  • DHCP的配置
  • JavaWeb14-线程池
  • [qiankun+nuxt]子应用请求本地文件报错404
  • 【Qt网络编程】实现TCP协议通信
  • Webpack打包———处理样式资源
  • VP记录:Codeforces Round 857 (Div. 2) A~D
  • Docker常用项目实战演练
  • Linux进程间通信-FIFO命名管道
  • 【Kafka】记录一次基于connect-mirror-maker做的Kafka集群迁移完整过程
  • 实现VOC数据集与COCO数据集格式转换
  • 常用的密码算法有哪些?
  • SNS (Simple Notification Service)简介
  • JVM初步理解浅析
  • 【巨人的肩膀】MySQL面试总结(一)