# Appllication的功能設計
每一個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;
}
}
~~~
- 前言
- Android sdk開發 - 序
- Android sdk開發(一)Application設計
- Android sdk開發(二) Log日志類的設計
- Android SDK開發 (三) App的屬性配置
- android SDK開發-- 功能設計
- android SDK開發 -- TitleBar封裝(一)
- android SDK開發 -- TitleBar封裝(二)
- Android SDK開發 -- TitleBar重構 (代理模式的使用)
- Android SDK開發 -- TitleBar重構 (代理模式-優化)
- android SDK核心功能 -- 消息傳遞與界面刷新
- Android SDK開發 -- TitleBar重構 - 使用策略模式、舍棄代理模式