美文网首页
高级技巧

高级技巧

作者: 熊大哥87 | 来源:发表于2017-07-22 19:25 被阅读0次

全局获取Context

private class MyApplication extends Applocation{
private static Context mcontext;
@Override
public void onCreate(){
mcontext=getApplicationContext();
}
public static Context getContext()
{
return mcontext
}
}
在清单文件中在application中添加name标签:包名+类名
有冲突时将context传递LitePalApplication.initialize(mcontext);

使用Intent传递对象

//Serializable方式
是对象实现Serializable接口,将对象进行序列化
//Parcellable方式
实现Parcellable接口,重写describeContents()和writeToParcel两个方法
public class Student implements Parcelable {
    private String name;
    private int age;
    @Override
    public void writeToParcel(Parcel dest, int flags) {
        dest.writeString(name);
        dest.writeInt(age);
    }

    @Override
    public int describeContents() {
        return 0;
    }

    public static final Creator<Student> CREATOR = new Creator<Student>() {
        @Override
        public Student createFromParcel(Parcel in) {
            Student student=new Student();
            student.name=in.readString();
            student.age=in.readInt();
            return student;
        }

        @Override
        public Student[] newArray(int size) {
            return new Student[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  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.d(tag,msg);
        }
    }
    public static void i(String tag,String msg){
        if (level<=INFO){
            Log.i(tag,msg);
        }
    }
    public static void w(String tag,String msg){
        if (level<=WARN){
            Log.w(tag,msg);
        }
    }
    public static void e(String tag,String msg){
        if (level<=ERROR){
            Log.e(tag,msg);
        }
    }
}
//通过修改level的值来修改打印日志

创建定时任务

##Alarm机制
AlarmManager manager=(AlarmManager)getSystemService(Context.ALARM_SERVICE);
调用AlarmManager的set方法
 AlarmManager alarmManager= (AlarmManager) getSystemService(Context.ALARM_SERVICE);
        long triggertime= SystemClock.elapsedRealtime()+10*100;
        Intent intent1=new Intent(this,MyService.class);
        PendingIntent pendingIntent=PendingIntent.getService(this,0,intent1,0);
        alarmManager.set(AlarmManager.RTC_WAKEUP,triggertime, pendingIntent);
//由于现在对于cpu优化Alarm机制不在准确
可以调用xactExact来执行

相关文章

  • iOS核心动画高级技巧 - 8

    iOS核心动画高级技巧 - 1iOS核心动画高级技巧 - 2iOS核心动画高级技巧 - 3iOS核心动画高级技巧 ...

  • 正则表达式

    JS高级技巧 本篇是看的《JS高级程序设计》第23章《高级技巧》做的读书分享。本篇按照书里的思路根据自己的理解和经...

  • Python中的一些高级技巧

    Python中的一些高级技巧 Python 开发中有哪些高级技巧?这是知乎上一个问题,我总结了一些常见的技巧在这里...

  • 高级技巧

    不可拓展对象: preventExtensions(想要禁止拓展的对象):这个是Object的静态方法,它可以用于...

  • 高级技巧

    全局获取Context 使用Intent传递对象 定制自己的日志工具 创建定时任务

  • 高级技巧

    本章内容:使用高级函数、防篡改对象、Yielding with Timers JavaScript 是一种极其灵活...

  • 高级开发必会高效Java

    高级开发起码得会些高级技巧吧?那这些高级技巧从哪里取得呢? 第一种方式肯定是读书,什么?你没那么多时间? 幸好,我...

  • iOS核心动画高级技巧(笔记)——(一)图层树 、寄宿图

    说明:所有的iOS核心动画高级技巧(笔记)都是读书笔记,原文请戳iOS核心动画高级技巧 图层树 在iOS当中,所有...

  • iOS性能调优

    ios 核心动画高级技巧CPU&GPU

  • 使用symbolic breakpoint调试

    #iOS开发高级技巧#iOS调试技巧非常多,个人最喜欢的是xcode内置的 symbolic breakpoint...

网友评论

      本文标题:高级技巧

      本文链接:https://www.haomeiwen.com/subject/naoykxtx.html