獲取全局上下文(getApplicationContext)_創建Shared Preference工具類_實現自動登錄
===========================獲取全局上下文(getApplicationContext)========================
1.在com.example.autologin.myapplication包中創建Myapplication extends Application
代碼:
1 public class Myapplication extends Application 2 { 3 private static Context context; 4 5 @Override 6 public void onCreate() 7 { 8 super.onCreate(); 9 10 context = getApplicationContext(); 11 } 12 13 public static Context getAppContext() 14 { 15 return context; 16 } 17 }
2.在AndroidManifest.xml中添加屬性, 申明Myapplication:
android:name="com.example.autologin.myapplication.Myapplication"
代碼:
1 <!-- 申明Myapplication --> 2 <application 3 android:name="com.example.autologin.myapplication.Myapplication" 4 android:allowBackup="true" 5 android:icon="@drawable/ic_launcher" 6 android:label="@string/app_name" 7 android:theme="@style/AppTheme" > 8 9 <!-- ....... --> 10 11 </application>
================================創建Shared Preference工具類==============================
在包com.example.autologin.utils中創建SpUtil.java類:
代碼:
1 public class SpUtil 2 { 3 // 4 //通過全局上下文創建靜態SharedPreferences對象 5 // 6 private static SharedPreferences sp = 7 Myapplication.getAppContext().getSharedPreferences("user",Context.MODE_PRIVATE); 8 9 //靜態保存用戶賬號密碼方法 10 public static void saveUser(String name, String pwd) 11 { 12 Editor edit = sp.edit(); 13 edit.putString("username", name); 14 edit.putString("pwd", pwd); 15 16 edit.commit(); 17 18 } 19 20 // 21 //保存是否有過登錄的狀態 22 // 23 public static void isLogin(boolean isLogin) 24 { 25 Editor edit = sp.edit(); 26 edit.putBoolean("islogin", isLogin); 27 edit.commit(); 28 } 29 30 // 31 //讀取是否有過登錄的狀態 32 // 33 public static boolean getIsLogin() 34 { 35 return sp.getBoolean("islogin", false); 36 } 37 }
=============================實現自動登錄============================
創建歡迎頁面SplashActivity.java,讀取登錄狀態,若有過登錄則直接跳轉主頁面,沒有登錄過跳轉登錄頁面
代碼:
1 Handler handler = new Handler(); 2 handler.postDelayed(new Runnable() 3 { 4 @Override 5 public void run() 6 { 7 // 8 //如果有過登錄 9 //直接跳轉主頁面 10 // 11 if (SpUtil.getIsLogin()) 12 { 13 Intent intent = new Intent(SplashActivity.this, MainActivity.class); 14 startActivity(intent); 15 SplashActivity.this.finish(); 16 } else 17 { 18 // 19 //如果沒有登錄過登錄 20 //跳轉登錄頁面 21 // 22 Intent intent = new Intent(SplashActivity.this, LoginActivity.class); 23 startActivity(intent); 24 SplashActivity.this.finish(); 25 } 26 27 } 28 }, 3000);
**注意: 將SplashActivity.java設置為啟動頁面