如何在android中声明常量而不使用公共静态final

dluptydi  于 2021-07-09  发布在  Java
关注(0)|答案(5)|浏览(316)

我正在开发一个蓝牙应用程序,一直运行,直到用户卸载应用程序或关闭手机。我收到一条错误消息:“不幸的是,应用程序停止工作”。从我最初的研究来看,这似乎是一个内存泄漏问题。到目前为止,我已经发现任何带有静态引用的对象都会泄漏内存。所以我需要删除变量的静态引用。我的项目有很多常量,我怎么写常量而不使用公共静态final?
目前,我使用的是这样的东西: public static final int NOTIFICATION_ID=1234; 更新
我想我的问题需要更多的信息
私有静态变量问题1)嗨,朋友们,我的应用程序使用的数据库有9个表,每个表有7到13列,所以我声明的列名像private static final string column\u name\u active=“active”;类似地,已经声明了70多个静态变量。2) 我声明的另一个类中要访问的一些示例3)1 util class它是一个静态类

3htmauhk

3htmauhk1#

您需要持久化数据,您可以使用 SharedPreferences 这样地:
你是谁 SharedPreferences :

SharedPreferences sharedpreferences = getSharedPreferences("mypref", Context.MODE_PRIVATE);

写信给您的共享参考:

Editor editor = sharedpreferences.edit();
editor.putString("key", "value");
editor.commit();

当你想读的时候读:

String value = sharedpreferences.getString("key","defaultValue");
628mspwn

628mspwn2#

通常我在单个文件中声明常量,这将帮助我和其他开发人员更新任何配置/值。
您可以通过使用 interface . 默认情况下,接口是静态final,变量声明同时声明为静态和final。

public interface MyConstants {
  String SERVER_URL = "my_server_address";
  int SPLASH_LAUNCH_TIME = 1000;
}

可以通过两种方式在接口中使用常量-
答。或者直接调用它们,比如myconstants.server\u url;
b。实现这一点 interface 并直接访问所有常量。
明智地选择你的方法,通过使用方法2,你将淹没类中的所有常量。即使他们在那门课上也不是必需的。

des4xlb0

des4xlb03#

创建一个接口类并在那里定义变量

public interface Constants{

String Name="AAA";
String Age="20";

}

像这样使用

String name=Constants.Name;
jljoyd4f

jljoyd4f4#

您可以在xml格式下定义res/values中的常量,并使用 R. 在这种情况下 R.integer. .
例子:

<resources>
    <integer name="notif_id">1234</integer>
</resources>

用法示例: someMethodName(R.integer.notif_id)

w9apscun

w9apscun5#

可以使用枚举:

public enum Gender {
   MALE,
   FEMALE
}

然后像这样访问它:

Gender.MALE

相关问题