Android sdk开发(一)Application设计

每一个App都应该有一个扩展的Application。这个类中主要写一些整个app广泛用到的方法或app相关配置操作

application的生命周期是从app启动到退出。进程结束。所以在application中变量都定义为static,  也可以定义为非static。只是调用的时候稍微麻烦点

public classPhoebeApp extends android.app.Application
       private static Context context;
       private static Handler handler;

App的上下文引用,主要用于调用系统api

比如说 context.getSystemService(String name) 我们在app的方法中调用的时候可以

PhoebeApp.getContext().getSystemService(Context.NOTIFICATION_SREVICE)。 不需要每次使用的时候都传入参数Context,在类设计的时候可以更加自由。

 

另外App中会频繁用到handler与线程的交互。有时候我们需要用Handler#postDelayed(Runnable r , intdelayMills) 这个时候我们无需重新new handler(); 只需要调用全局的PhoebeApp#getHander() 即可

 

更高级的用法先不讲。后续再

 

 

至此一个基本的Application扩展类已经定义完成

package phoebe.frame;

import android.app.Application;
import android.content.Context;
import android.os.Handler;

/**
 * 这个类中主要做一些全局的配置, 或者整个app广泛用到的方法逻辑<br>
 * 
 * 生命周期从
 * 
 * @author coffee<br>
 *         2015-12-15下午3:28:30
 */
public class PhoebeApp extends Application {
	/**
	 * app的上下文的引用,主要用于调用系统api的时候传参
	 */
	private static Context context;
	/**
	 * 全局Handler 一般一个app只需要定义一个Handler就搞定了
	 */
	private static Handler handler;

	@Override
	public void onCreate() {
		super.onCreate();
	}

	public static Context getContext() {
		return context;
	}

	public static Handler getHandler() {
		return handler;
	}
}

文章导航