Android学习笔记(十二)

全局获取Context

首先需要实现自定义MyApplication继承Application,然后在AndroidManifest.xml的<Application>标签下配置MyApplication,这里需要使用全类名。MyApplication中存储了静态的Application级别的Context,使用时直接调用MyApplication.getContext即可。

使用Intent传递一些自定义对象

Serializable方式
直接让实体类实现Serializable接口,然后在Intent的putExtra方法中直接传入即可。然后通过getIntent().getSerilizableExtra取出,取出的Serializable对象向下转型。
Parcelable方式
Parcelable方式的效率更高,首先我们的实体类需要继承Parcelable类,实现describeContents和writeToParcel方法。前者直接返回0即可,后者需要将实体类中的字段一一写出,除此我们还需要提供一个Creator常量,可以实现Parcelable.Creator接口,并制定泛型。重写crateFromParcel和newArray两个方法。在crateFromParcel中需要读取之前写入的字段,然后返回实例。读取的顺序和写入的顺序要相同,newArray中直接传入size返回一个数组即可。

定制自己的日志工具

通过直接定制日志工具,可以实现在生产环境去除日志的功能。
public class LogUtil {
public static final int VERBOSE = 1;
public static final int DEBUG = 2;
public static final int INFO = 3;
public static final int WARN = 4;
public static final int ERROR = 5;
public static final int NOTHING = 6;
public static final int level = VERBOSE;

public static void v (String tag,String msg){
    if (level <= VERBOSE){
        Log.v(tag,msg);
    }
}    
public static void d (String tag,String msg){
    if (level <= DEBUG){
        Log.v(tag,msg);
    }
}    
public static void i (String tag,String msg){
    if (level <= INFO){
        Log.v(tag,msg);
    }
}    
public static void w (String tag,String msg){
    if (level <= WARN){
        Log.v(tag,msg);
    }
}    
public static void e (String tag,String msg){
    if (level <= ERROR){
        Log.v(tag,msg);
    }
}

}
通过指定level就能实现只打印对应级别以上的日志,指定为NOTHING级别的时候就不会打印。

调试

使用Attach debugger to processor 可以随时将正常运行的程序进入调试模式。

Alarm

通过getSystemService方法可以获取AlarmManager的实例,传入参数Context.ALARM_SERVICE即可,调用manager,第一个参数是一个整型,用于指定AlarmManager的工作类型,第二个参数是任务触发的时间,第三个参数是pendingIntent

Lambda表达式

Lambda表达式即没有方法名,也没有访问修饰符,返回值类型。只要是只有一个待实现方法的接口都可以使用Lambda表达式。如图,用lambda表达式实现接口:

    public interface MyListener {
        String dosomething(String a, int b);
    }
   MyListener myListener = (a, b)->{
        String result = a + b;
        return result;
    };
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值