全局获取Context、Intent传递对象、日志类
2017-10-03 09:55
357 查看
1. 全局获取Context
创建Application类:
public class MyApplication extends Application{
private static Context context;
@override
public void onCreate(){
context = getApplicationContext();
}
public static Context getContext(){
return context;
}
}
在Manifest中application标签中初始化:
android:name="com.lewanjiang.test.MyApplication"
使用Context:
MyApplication.getContext()
如果使用LitePal和百度地图,这种配置过application的库时,可将MyApplication中修改:在onCreate方法中添加一句:
LitePalApplication.initialize(context);
2.用Intent传递对象
2.1 Serializable:
public class Book implements Serializable{ private String name;private String author;...}
Book book.setName("bob")...setAuthor
intent.putExtra("tran_data",book);
获取:Book book=(Book)getIntent().getSerizlizableExtra("tran_data");
2.2 Parcelable:
public class Book implements Parcelable {
name,author...
@Override
public int describeContents() {return 0;}
@Override
public void writeToParcel(Parcel dest,int flags) {
dest.writeString(name);
dest.writeInt(author);
}
public static final Parcelable.Creator<Book> CREATOR=new Parcelable.Creator<Book>() {
@Override
public Book createFromParcel(Parcel source) {
Book person = new Book();
book.name = source.readString();
book.author = source.readInt();
return person;
}
@Override
public Person[] newArray(int size) {
return new Person[size];
}
};
发送和上面一样,接收变为:getIntent().getParcelableExtra("tran_data");
3.定制日志:
public class LogUtil {
public static final int VERBOSE = 1;
public static final int DEBUG = 2;
INFO = 3;WARN=4;ERROR=5;NOTHING=6;
public static int level = VERBOSE;
public static void v(String tag,String msg){if(level<=VERBOSE) Log.v(ta,msg); }
}
创建Application类:
public class MyApplication extends Application{
private static Context context;
@override
public void onCreate(){
context = getApplicationContext();
}
public static Context getContext(){
return context;
}
}
在Manifest中application标签中初始化:
android:name="com.lewanjiang.test.MyApplication"
使用Context:
MyApplication.getContext()
如果使用LitePal和百度地图,这种配置过application的库时,可将MyApplication中修改:在onCreate方法中添加一句:
LitePalApplication.initialize(context);
2.用Intent传递对象
2.1 Serializable:
public class Book implements Serializable{ private String name;private String author;...}
Book book.setName("bob")...setAuthor
intent.putExtra("tran_data",book);
获取:Book book=(Book)getIntent().getSerizlizableExtra("tran_data");
2.2 Parcelable:
public class Book implements Parcelable {
name,author...
@Override
public int describeContents() {return 0;}
@Override
public void writeToParcel(Parcel dest,int flags) {
dest.writeString(name);
dest.writeInt(author);
}
public static final Parcelable.Creator<Book> CREATOR=new Parcelable.Creator<Book>() {
@Override
public Book createFromParcel(Parcel source) {
Book person = new Book();
book.name = source.readString();
book.author = source.readInt();
return person;
}
@Override
public Person[] newArray(int size) {
return new Person[size];
}
};
发送和上面一样,接收变为:getIntent().getParcelableExtra("tran_data");
3.定制日志:
public class LogUtil {
public static final int VERBOSE = 1;
public static final int DEBUG = 2;
INFO = 3;WARN=4;ERROR=5;NOTHING=6;
public static int level = VERBOSE;
public static void v(String tag,String msg){if(level<=VERBOSE) Log.v(ta,msg); }
}
相关文章推荐
- Android编程实现全局获取Context及使用Intent传递对象的方法详解
- Android 全局获取 Context 与使用 Intent 传递对象
- 全局获取Context的技巧,使用intent来传递对象
- Android编程技巧之获取全局 Context 对象
- android全局获取Context对象(在静态函数中实现toast)
- 【TIP_4】Intent传递对象,在Activity和Fragment中再获取是否为新对象
- 第一行代码笔记 全局获取context,定时任务,日志打印
- Android中使用Intent传递Object和ArrayList<Object>对象和获取
- 获取全局Context对象,任何时候,任何地方,任何逻辑都可以获取
- Activity间通过Intent传递对象的方法
- Android 通过 Intent 传递类对象
- 在一般类中通过XmlWebApplicationContext对象获取应用部署上下文Context
- 通过 Intent 传递类对象
- Android中intent传递list或者对象的方法
- Intent.putExtra()传递Object对象或者ArrayList<Object>
- Intent传递对象的几种方式
- Android中Intent传递对象的两种方法(Serializable,Parcelable)
- PackageManger.getLaunchIntentForPackage(String packageName)获取Intent对象启动Activity的坑
- Android中Intent传递对象的两种方法!
- Android四大组件之Intent-01-通过 Intent 传递类对象