日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

android如何建立全局变量,如何在Android中声明全局变量?

發布時間:2024/9/27 Android 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android如何建立全局变量,如何在Android中声明全局变量? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我正在創建一個需要登錄的應用程序。 我創建了主要和登錄活動。

在主要活動onCreate方法中我添加了以下條件:

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

...

loadSettings();

if(strSessionString == null)

{

login();

}

...

}

登錄表單終止時執行的onActivityResult方法如下所示:

@Override

public void onActivityResult(int requestCode,

int resultCode,

Intent data)

{

super.onActivityResult(requestCode, resultCode, data);

switch(requestCode)

{

case(SHOW_SUBACTICITY_LOGIN):

{

if(resultCode == Activity.RESULT_OK)

{

strSessionString = data.getStringExtra(Login.SESSIONSTRING);

connectionAvailable = true;

strUsername = data.getStringExtra(Login.USERNAME);

}

}

}

問題是登錄表單有時會出現兩次( login()方法被調用兩次),當手機鍵盤滑動時,再次出現登錄表單,我猜問題是變量strSessionString 。

有沒有人知道如何設置變量global以避免在用戶已經成功驗證后出現登錄表單?

#1樓

就像上面討論的那樣OS可以在沒有任何通知的情況下殺死APPLICATION(沒有onDestroy事件),所以沒有辦法保存這些全局變量。

SharedPreferences可能是一個解決方案,除了你有COMPLEX STRUCTURED變量(在我的例子中,我有整數數組來存儲用戶已經處理過的ID)。 SharedPreferences的問題在于,每次需要值時都很難存儲和檢索這些結構。

在我的情況下,我有一個后臺服務,所以我可以將這些變量移動到那里,因為服務有onDestroy事件,我可以輕松保存這些值。

#2樓

您可以使用Intents,Sqlite或共享首選項。 對于媒體存儲,如文檔,照片和視頻,您可以改為創建新文件。

#3樓

我找不到如何指定應用程序標簽,但經過大量的谷歌搜索后,從清單文件docs中可以看出:除了應用程序節中的默認圖標和標簽外,還使用了android:name。

android:name為應用程序實現的Application子類的完全限定名稱。 啟動應用程序進程時,將在任何應用程序的組件之前實例化此類。

子類是可選的; 大多數應用程序不需要一個。 在沒有子類的情況下,Android使用基本Application類的實例。

#4樓

class GlobaleVariableDemo extends Application {

private String myGlobalState;

public String getGlobalState(){

return myGlobalState;

}

public void setGlobalState(String s){

myGlobalState = s;

}

}

class Demo extends Activity {

@Override

public void onCreate(Bundle b){

...

GlobaleVariableDemo appState = ((GlobaleVariableDemo)getApplicationContext());

String state = appState.getGlobalState();

...

}

}

#5樓

在恢復之前調用活動結果。 因此,將登錄檢查移至恢復狀態,一旦secomd活動返回肯定結果,您的第二次登錄就會被阻止。 每次都會調用簡歷,因此不必擔心第一次沒有調用它。

總結

以上是生活随笔為你收集整理的android如何建立全局变量,如何在Android中声明全局变量?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。