Глобальная переменная Android - PullRequest
270 голосов
/ 22 декабря 2009

Как создать глобальную переменную, чтобы сохранить значения в течение всего жизненного цикла приложения независимо от того, какое действие выполняется ..

Ответы [ 14 ]

1 голос
/ 08 декабря 2017

Технически это не отвечает на вопрос, но я бы рекомендовал использовать базу данных Room вместо любой глобальной переменной. https://developer.android.com/topic/libraries/architecture/room.html Даже если вам «всего лишь» нужно хранить глобальную переменную, и это не имеет большого значения, а что нет, но использование базы данных Room является наиболее элегантным, естественным и хорошо поддерживаемым способом сохранения значений на протяжении жизненного цикла действия. Это поможет предотвратить многие проблемы, особенно целостность данных. Я понимаю, что база данных и глобальные переменные разные, но, пожалуйста, используйте Room для обслуживания кода, стабильности приложения и целостности данных.

0 голосов
/ 21 ноября 2013

Если возможно, вы должны объявить переменные, которые вам нужны для поддержания жизни, которые не были очищены сборщиком мусора или выгрузить ОС в файле .so Для этого вы должны написать код на C / C ++, скомпилировать в файл .so lib и загрузить его в свой файл MainActivity.

0 голосов
/ 14 июня 2013
import android.app.Application;

public class Globals extends Application
{
    private static Globals instance = null;
    private static int RecentCompaignID;
    private static int EmailClick;
    private static String LoginPassword;
    static String loginMemberID;
    private static String CompaignName = "";
    private static int listget=0;
    //MailingDetails
    private static String FromEmailadd="";
    private static String FromName="";
    private static String ReplyEmailAdd="";
    private static String CompaignSubject="";
    private static int TempId=0;
    private static int ListIds=0;

    private static String HTMLContent="";
    @Override
    public void onCreate() 
    {
        super.onCreate();
        instance = this;
    }

    public static Globals getInstance()
    {
        return instance;
    }

    public void setRecentCompaignID(int objRecentCompaignID)
    {
        RecentCompaignID = objRecentCompaignID;
    }

    public int getRecentCompaignID() 
    {
        return RecentCompaignID;
    }

    public void setLoginMemberID(String objloginMemberID) 
    {
        loginMemberID = objloginMemberID;
    }

    public String getLoginMemberID() 
    {
        return loginMemberID;
    }

    public void setLoginMemberPassword(String objLoginPassword)
    {
        LoginPassword = objLoginPassword;
    }

    public String getLoginMemberPassword()
    {
        return LoginPassword;
    }

    public void setEmailclick(int id)
    {
        EmailClick = id;
    }

    public int getEmailClick() 
    {
        return EmailClick;
    }
    public void setCompaignName(String objCompaignName)
    {
        CompaignName=objCompaignName;
    }
    public String getCompaignName()
    {
        return CompaignName;
    }
    public void setlistgetvalue(int objlistget)
    {
        listget=objlistget;
    }
    public int getlistvalue()
    {
        return listget;
    }
    public void setCompaignSubject(String objCompaignSubject)
    {
         CompaignSubject=objCompaignSubject;
    }
    public String getCompaignSubject()
    {
        return CompaignSubject;
    }
    public void setHTMLContent(String objHTMLContent)
    {
        HTMLContent=objHTMLContent;
    }
    public String getHTMLContent()
    {
        return HTMLContent;
    }
    public void setListIds(int objListIds)
    {
        ListIds=objListIds;
    }
    public int getListIds()
    {
        return ListIds;
    }
    public void setReplyEmailAdd(String objReplyEmailAdd)
    {
        ReplyEmailAdd=objReplyEmailAdd;
    }
    public String getReplyEmailAdd()
    {
        return ReplyEmailAdd;
    }
    public void setFromName(String objFromName)
    {
        FromName=objFromName;
    }
    public String getFromName()
    {
        return FromName;
    }
    public void setFromEmailadd(String objFromEmailadd)
    {
        FromEmailadd=objFromEmailadd;
    }
    public String getFromEmailadd()
    {
        return FromEmailadd;
    }
}
0 голосов
/ 27 сентября 2012

Легко !!!!

Те переменные, к которым вы хотите обращаться как к глобальной переменной, вы можете объявить их как статические переменные. И теперь вы можете получить доступ к этим переменным, используя

classname.variablename;

public class MyProperties {
private static MyProperties mInstance= null;

static int someValueIWantToKeep;

protected MyProperties(){}

public static synchronized MyProperties getInstance(){
    if(null == mInstance){
        mInstance = new MyProperties();
    }
    return mInstance;
}

}

MyProperites.someValueIWantToKeep;

Вот и все! ;)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...