Android学习(21)-一些进阶常识

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



















  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值