獲取全局上下文(getApplicationContext)_創建Shared Preference工具類_實現自動登錄


獲取全局上下文(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設置為啟動頁面

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM