Android的Activity共享變數的另一種做法
--------------------------------------------------------
注意:這種做法對於activity比較少,只有兩三個,並且context生命週期比較長,根本不怎麼起作用。解決不了OOM
-----------------------------------------------------------
感覺用這種方式儲存登入資訊比較好,比SharedPreferences儲存登入資訊的狀態比較合適。
相當於儲存session的資料(打個比喻)。多個Activity中經常使用同一變數時,使用Bundle則比較麻煩,每次呼叫Activity都需要設定一次。如想在整個應用中使用,在java中一般是使用靜態變數,而在android中有個更優雅的方式是使用Application context。
用SharedPreferences儲存的話關閉應用的時候這個值還是最後一次設定的值,如果是非正常退出程式時登入狀態就會有問題,所以在使用上感覺application context是最合適儲存當前登入狀態的資訊,當然可是儲存一些相當於session當中儲存的值,因為關閉應用後這些值就沒有了。
package org.mdx.core.modules;
import android.app.Application;
public class ApplicationHelper extends Application {
private boolean session_enter = false; // 預設為false
/**
* 設定session狀態
*
* @param bol
* true為以登入,false未登入
*/
public void putSession(boolean bol) {
session_enter = bol;
}
/**
* 是否登入
*
* @return true是,false否
*/
public boolean isEnter() {
return session_enter;
}
}
在AndroidManifest.xml的application加個name屬性就可以了,如下面所示:
<application android:name=".core.modules.ApplicationHelper"
android:icon="@drawable/icon" android:label="@string/app_name">
activity使用時:(這個是重點)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getApplicationContext().putSession(false); // 設定登入狀態為退出
}
public ApplicationHelper getApplicationContext() {
return ((ApplicationHelper) super.getApplicationContext());
}
相關文章
- Android的activity的四種啟動方式Android
- Android5.0Activity的轉場動畫和共享元素Android動畫
- Android中Activity的四種啟動方式Android
- Android加快編譯速度的另一種方法Android編譯
- Android中的Activity四種啟動模式(launchMode)Android模式
- Android中Activity的LunchMode引數詳解Android
- Python 判斷質數的另一種方法Python
- Activity的四種launchMode
- 共享變數、廣播變數,累計器的工作原理圖。變數
- 將一個Activity中的資料傳到另一個Activity的Fragment中的方法Fragment
- TensorFlow——共享變數的使用方法變數
- android解鎖屏時Activity生命週期的變化Android
- 三種交換變數的方法變數
- Android在多個Activity之間共享一個ViewAndroidView
- 仿寫Android的ActivityAndroid
- Android Activity的基本理解Android
- android Activity A和B互相跳轉 生命週期的變化Android
- 多執行緒中的使用共享變數的問題執行緒變數
- 轉:資料中心備份的十三種最佳做法
- Tensorflow學習筆記: 變數及共享變數筆記變數
- android 中Service 和activity之間的資料傳遞的幾種方法Android
- [Android]Activity的生命週期Android
- android中activity全屏的方法Android
- 列表切片賦值給另一個變數賦值變數
- 淺析一個函式呼叫另一個函式的變數函式變數
- C++變數總結束 | 輸出各種變數的值C++變數
- Linux各種變數的含義Linux變數
- 想玩開源又不想寫程式碼的八種做法
- 【力扣】組合總數(另一種整數溢位)力扣
- Android四大元件——Activity——Activity的生命週期Android元件
- Android ActivityAndroid
- Android Activity是如何啟動的?Activity的生命週期是如何呼叫的?Android
- 如何在檢視中共享變數變數
- Android-Activity的啟動模式Android模式
- Android Activity的啟動過程Android
- Android切換Activity的動畫效果Android動畫
- Android的Task和Activity相關Android
- 詳解 Android 的 Activity 元件【Z】Android元件