android静态常量存储,Java-Android静态变量丢失

我正在使用仅包含静态变量的类来存储所有常量和运行时属性.但是,最近我看到了引用这些变量的实例,但得到的却是null.

以下是我的课程定义:

public class PlayerProperties {

// Runtime but constant properties

public static int screenHeight;

public static int screenWidth;

public static String androidId;

// Static properties

// Urls

public static final String baseUrl = "http://www.blynq.in/api/player/";

public static final String registerUrlAppender = "activationKeyValid";

public static final String schedulesUrlAppender = "getScreenData";

public static final String updateUrlAppender = "updateAvailable";

public static final String tokenRegisterUrl = "fcmRegister";

public static final String mediaStatsUrl = "mediaStats";

public static final String logsUrl = "logs";

public static final String pingUrl = "ping";

public static final String screenInfoUrl = "screenInfo";

// Developer Keys

public static final String youtubeDeveloperKey = "ABCDEFGH...";

// Folder structure

public static final String mediaFolder = "player/media";

public static final String imagesFolder = "player/media/images";

public static final String videosFolder = "player/media/videos";

public static final String pdfFolder = "player/media/pdf";

public static final String gifFolder = "player/media/gif";

public static final String webFolder = "player/media/web";

public static final String othersFolder = "player/media/others";

public static final String logsFolder = "player/logs";

public static final String defaultFolder = "player/default/";

public static final String serFolder = "player/ser/";

public static final String tempFolder = "player/temp/";

// Shared Prefs Keys

public static final String ANDROID_ID_KEY = "ANDROID_ID";

public static final String MY_PREFERENCES_KEY = "MyPrefs";

// General properties

public static final String dateTimeFormatString = "ddMMyyyyHHmmss";

public static final String dateFormatString = "yyyy-MM-dd";

// Timeouts

public static final int httpPollTimeout = 20000; // in millis

public static final int pingPeriodicity = 30; // in secs

public static final int updateCheckPeriodicity = 24; // in hrs

public static final int pushEnabledPollPeriodicity = 30; // in secs

public static final int pushDisabledPollPeriodicity = 30; // in secs

public static final int statsUploadPeriodicity = 60; // in mins

public static final int logsUploadPeriodicity = 24; // in hours

public static final int cleanupPeriodicity = 24; // in hours

public static final int registrationStatusRecheckPeriod = 20000; // in millis

public static final int tokenResendToServerPeriod = 20000; // in millis

// Others

public static final int maxTextHeight = 50; // in dp

...

}

我没有存储任何引用实例化PlayerProperties类,因为其中包含的所有变量都是静态的.

当我使用PlayerProperties.androidId引用变量androidId时,我有时会得到null.

我已经在活动之一中初始化了变量:

PlayerProperties.androidId = sharedpreferences.getString(PlayerProperties.ANDROID_ID_KEY, String.valueOf(UUID.randomUUID()));

>我怀疑垃圾收集器是介于两者之间的android.如果gc确实启动了,它将取消我所有运行时初始化的静态变量吗?

>静态变量存储在哪个内存段中?

>如果没有,那还有什么问题?

额外详细信息:我的应用程序配置为在启动时自动启动.我仅在低端处理器以及启动时自动触发应用程序时才遇到上述问题.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值