最老程式員開發實訓9--Android---應用介紹頁面實現1
在這一節中,我們回到Android端,討論一下當應用第一次運行時,通常採用的一頁一頁滑動的介紹頁面的實現方式。
首先,我們需要知道應用是否是第一次運行。判斷應用是否是第一次運行,通常是應用持久化儲存一個特定的資訊,每次啟動時檢查是否有該資訊,如果沒有則代表第一次運行。對於資訊的持久化儲存,在Android平台,大約有三種方法,分別是SharedPreferences、檔案、SQLite資料庫,通常類似應用是否第一次運行這種小資訊,一般會選擇儲存在SharedPreferences中。
我們首先在庫工程WkyLib中的controller包內,定義一個基類為Application的WkyApplication類,在該函數中實現判斷應用是否是第一次運行。Android系統中Application可以視為一個Android系統下系統提供的單例模式(Singleton)的類,可以儲存一些全域變數等資訊。
WkyApplication類的代碼如下所示:
public class WkyApplication extends Application {/** * 通過查詢儲存在SharedPreference裡面的值,檢查是否是首次運行 * @return * 【閆濤 2015.09.09】初始版本 */public boolean isFirstRun() {SharedPreferences pref = getSharedPreferences(S_PREF_NAME, MODE_PRIVATE);return pref.getBoolean(S_PREF_FIRST_RUN, true);}/** * 通過判斷SharedPreference裡是否有userId等資訊,判斷使用者是否註冊 * @return * 【閆濤 2015.09.09】初始版本 */public boolean isLogin() {return true;}public final static String S_PREF_NAME = WkgJys;public final static String S_PREF_FIRST_RUN = firstRun;}上面的代碼比較簡單,不用解釋。但是這裡還想強調一下,getSharedPreferences中使用預先定義的常量,而不是直接寫字串,這樣首先不容易出現因為拼字錯誤而出現找不到值的問題,同時增加了代碼的可讀性,雖然不算什麼,但是良好的編程習慣是非常非常重要的。不重視的話,遲早要付出慘重的代價。
在具體應用WkgJys工程中,在controller包中定義繼承於WkyApplication的JysApplication類,代碼如下所示:
public class JysApplication extends WkyApplication {}為了讓該類可以起作用,在WkgJys工程的Manifest檔案中,加入android:name屬性:
最後是在Splash頁面中,在定時結束時,判斷是否是第一次運行,第一次運行則啟動應用介紹頁面,代碼如下所示:
startMainActivityTask = new Runnable() { @Override public void run() { if (jysApplication.isFirstRun()) { Log.e(wky, 顯示介紹頁面); } else if (!jysApplication.isLogin()) { Log.e(wky, 啟動登入頁面); } else { Intent intent = new Intent(SplashActivity.this, MainActivity.class); startActivity(intent); } finish(); } };