android - 在android应用程序中使用静态类变量是否安全

标签 android

我知道扩展 Application 类以提供全局存储的技术。但是在我的例子中,我正在为库函数编写一个类,所以不希望强制该类的用户走这条路。我需要一些静态类变量。我在 StackOverflow 中看到传递引用,这些引用可能不安全。然而,我已经尝试过使用同一个类的两个不同的应用程序,即使在多窗口模式下在 Galaxy S3 上并排运行两个应用程序时,静态类变量仍然是分开的。

那么,对 Android 内部结构有深入了解的人能否确认这是否安全。

如果不安全,我可以将变量包装在一个嵌套类中,并将它们添加到一个可序列化的静态 HashMap 中,使用应用程序包名称作为键。这将迫使他们安全。但是,如果这不是必需的,那么我宁愿不这样做。

最佳答案

I have seen passing references in StackOverflow that these might not be safe.

它们并不“安全”,因为您的进程会不时终止,从而清除您的静态数据成员(以及您的自定义 Application,就此而言)。因此,静态数据成员只适用于缓存而不是其他。

在那个范围内,它们是“安全的”。

您只需要确保这些数据要么存储在某个地方(例如文件),要么一旦进程终止并在稍后再次启动时可以重新生成。这与 Application 没有什么不同。

However I've tried two different applications using the same class, and even when running both applications side by side on a Galaxy S3 in multi-window mode, the static class variables remain separate.

正确。这些是单独的进程,具有您的类和对象的单独副本。

关于android - 在android应用程序中使用静态类变量是否安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16744677/

相关文章:

android - 如何在 Fragment 中调用 RecyclerView 适配器的方法

android - Buggy ListView 让我很难过

Android 应用程序和 Windows Azure 移动服务

android - 如何设置 mongoDB 服务器并将其用于 Android 应用程序?

android - 将 arraylist 从一个 Activity 传递到另一个 Activity

android - Kotlin 中的 For 循环

android.permission.PHONE_CALL 添加到 list 中但仍然出现权限错误

android - 使用 Telegram bot api 创建简单的聊天

javascript - 如何动态获取html5中的图表和报告?

android - 如何重写 onCreateDialogView() 并在dialogpreference中添加自定义 View