1、在很多操作的过程中,我们都会调用到Context,比如弹出Toast,启动活动,发送广播等。前面学到的东西这些代码都在活动里面, 直接传递this就可以了,但是随着工程的复杂,可能以后就不会那么轻易的获取到Context了。
(1)解决方法一 通过参数的形式传递Context,这样调用方法仍然需要能够访问和传递Context才行。
(2)解决方法二 使用Application类,每当应用程序启动的时候,系统都会将整个类进行初始化,我们可以定制一个自己的Application类,用于管理全局的Context对象。
public class MyApplication extends Application {
private static Context context;
public void onCreate(){
//获取Context
context = getApplicationContext();
}
public static Context getContext(){
return context;
}
}
配置文件增加一句:
<application
<span style="color:#ff0000;">android:name="com.example.baidumap.MyApplication"</span>
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
这样在工程中的任何地方都可以通过MyApplication.getContext()来获取Context对象了。
2、Intent使用方法已经比较熟悉了,可以用它来启动活动,广播,服务等。我们还可以通过Intent传递数值。
Intent intent = new Intent(OneActivity.this,TwoActivity.class);
intent.putExtra("string_data","hello");
startActivity(intent);
//获取数据
getIntent().getStringExtra("string_data");
或者
getIntent().getIntExtra("int_data",0);
那么如何通过Intent来传递自定义的对象呢?
(1)传递序列化对象
使得自定义类实现序列化接口,然后在intent中通过
intent.putExtra("serialization_object",object);
然后获取方式:
(Person)getIntent().getSerializableExtra("serialization_object");
(2) Parcelable方式
通过把对象进行分解,然后每一部分都是可以直接被传递的对象,比较繁琐复杂,此处不再赘述。有兴趣的可以自己查看一下。
3、如何控制日志的输出
工程中有很多日志输出的地方,要学会如何控制日志在什么时候输出,什么时候不输出。可以编写一个日志通用类:
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 LEVLE = VERBOSE; //通过控制LEVEL的数值就可以控制日志的输出情况
public static void v(String tag, String msg){
if(LEVLE <= VERBOSE){
Log.v(tag, msg);
}
}
public static void d(String tag, String msg){
if(LEVLE <= DEBUG){
Log.d(tag, msg);
}
}
public static void i(String tag, String msg){
if(LEVLE <= INFO){
Log.i(tag, msg);
}
}
public static void w(String tag, String msg){
if(LEVLE <= WARN){
Log.w(tag, msg);
}
}
public static void e(String tag, String msg){
if(LEVLE <= ERROR){
Log.e(tag, msg);
}
}
}
通过控制其中的LEVLE数值就可以控制日志的输出。之后便可以在代码中使用LogUtil.d()等方法了。
4、测试Android项目
(1)直接Debug As - Android Application
(2)在DDMS界面找到程序进程,点击上方的虫子,就可以进入调试界面了。
(3)编写测试用例,为项目创建测试工程。Android Test Project