高級技巧

全局獲取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來執行
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容