从静态方法获取应用程序实例

2023-12-28

在 Android 中使用静态方法获取应用程序继承者的实例是否正确?我在一些开源项目中看到过这种方法:VLC https://github.com/mstorsjo/vlc-android/blob/master/vlc-android/src/org/videolan/vlc/VLCApplication.java#L98 and Shuttle https://github.com/timusus/Shuttle/blob/dev/app/src/main/java/com/simplecity/amp_library/ShuttleApplication.java#L63

public class MyApplication extends Application {

    private static MyApplication sApplication;

    public static MyApplication getInstance() {
        return sApplication;
    }

    @Override
    public void onCreate() {
        super.onCreate();

        sApplication = MyApplication.this;
    }

}

是的。这种做法是正确的。这是您正在遵循的单例模式。作为static变量始终是正确的方式,因为它是您想要在任何地方维护的单一状态。

只要您的应用程序从未在多个进程中运行,它也是安全的。每个进程的应用程序都有严格的一比一的比例。

我也在我的所有应用程序中使用它。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从静态方法获取应用程序实例 的相关文章

随机推荐

  • 将 ajax 与 Spring MVC 结合使用

    我目前正在使用 Spring MVC 并且我正在尝试使用 ajax 做一些事情 基本上我现在想做的就是在网页上动态显示控制器的结果 IE 用户按下按钮 它会转到 whatever do 控制器并获取列表并显示该列表 而无需重新加载该页面 无
  • 如何告诉 WCF 跳过证书验证?

    试图做一个网络服务 http en wikipedia org wiki Web service打电话给HTTPS http en wikipedia org wiki HTTP Secure端点在我的银光 http en wikipedi
  • 如何使用Python进行互联网搜索?

    我想编写一个程序来搜索一个相当大的网站并提取某些内容 我上过一些在线 Python 课程 但都没有提到如何使用 Python 访问互联网 我不知道应该从哪里开始 你必须首先阅读标准Python库urllib2 http docs pytho
  • 与 docker swarm 的粘性会话

    我有一个使用 socket io 的 dockerized node js 应用程序 通过 docker compose 我在同一服务器上的两个不同容器上运行该应用程序的 2 个副本 然而 到达服务器的请求是以循环方式分发的 有没有一种方法
  • 将逗号分隔的列数据拆分为附加列

    我在一列中有逗号分隔的数据 Column a b c d 我想将逗号分隔的数据拆分为多列以获得以下输出 Column1 Column2 Column3 Column4 a b c d 如何才能实现这一目标 split part https
  • 查找数组中没有特定值的第一个值

    我怀疑这个问题很简单 但仍然是 我正在寻找一种有效的方法来从没有特定值的数组中获取第一个元素 例如 给定 Fred Fred Fred James Alex Fred 我想归还 詹姆斯 我可以通过类似的方式做到这一点 thearray se
  • Windows 中的 Confluence 平台

    是否可以在 Windows 上运行完整的 Confluence 平台 如果不是 运行 Confluence 平台的最佳方式是什么 Thanks Per 支持的操作系统列表 https docs confluent io current in
  • 如何在 REST 中创建 POST 请求以接受 JSON 输入?

    我正在尝试学习 RESTful Web 服务 我正在创建一组简单的网络服务 当我开始处理 POST 时遇到了困难 我想将 JSON 输入传递给 POST 方法 这就是我在代码中所做的 RequestMapping value create
  • 如何使用 VSCode 在虚拟环境中调试 python 代码?

    EDIT 使用 VSCode 我在虚拟环境中调试时遇到了问题 该环境具有未安装在base环境 使用命令激活环境后activate my env 我可以使用通常的 python 命令在环境中使用这些包python main py 但是在调试时
  • 2 个 cgi 脚本中的会话登录和注销

    我需要在用户登录时存储登录会话 并在用户退出系统或会话超时时删除登录会话 我正在用 Perl 编码 我知道我可以在 Perl 中使用 CGI Session 模块 但是如何确保会话是由 1 个 cgi 脚本创建并由另一个 cgi 脚本删除的
  • 如何通过 Qt WebGL 流向多个用户提供 Qt 应用程序?

    Qt Quick WebGL 流媒体 https www qt io blog 2018 11 23 qt quick webgl release 512是一种技术 任何 Qt Quick QML 应用程序都可以向通过 Web 浏览器连接的
  • 如何在 MongoDB 中启用数据压缩

    在 MongoDB 中 WiredTiger 提供了 Zlib 压缩选项 为了启用 Zlib 压缩选项 我使用以下代码创建了一个集合 db createCollection questions storageEngine wiredTige
  • 错误:WebhookClient.handleRequest 上没有请求意图的处理程序

    调用云函数的默认意图会出现错误 Error No handler for requested intent at WebhookClient handleRequest user code node modules dialogflow f
  • Powershell Get-ChildItem 进度问题

    所以 我在一个文件夹中有一组目录 00 99 每个目录都有 100 个子目录 00 99 每个子目录都有数千张图像 我想做的基本上是在计算平均文件大小时获得进度报告 但我无法让它发挥作用 这是我当前的查询 get childitem
  • 有没有办法更新工作项的“部署”部分?

    有谁知道更新工作项的 部署 部分的方法 我还没有找到任何可以执行此操作的任务的工作示例 cli 命令或 API 调用 这似乎是Azure DevOps Releases产品的独有功能 但我希望能够使用多阶段 YAML 管道来实现类似的东西
  • 在 Python 中定义带有可选参数的类

    class class1 def setdata self value1 value2 self data value1 value2 def display self print self data 对于上面的代码 当我使用它的时候 它需
  • C# - SqlDataReader 和序列化

    SqlDataReader 可以传递到会话或发送到客户端吗 例如 如果我从数据库中检索了一些行 并希望将此数据发送到另一台客户端计算机 我可以简单地通过在服务器上使用 json 序列化它然后在客户端上反序列化来完成此操作吗 不 只有数据 没
  • 在没有 epmd 的情况下启动 erlang VM

    我正在尝试与 erlang 虚拟机分开启动 epmd 以便对连接处理进行监控 这工作得很好 除了虚拟机在 epmd 之前启动的情况 有没有办法让 erlang 虚拟机启动而不自行启动 epmd 从 Erlang OTP 19 0 开始 有a
  • getPathValue() 函数用于具有数组和打包 JSON 的深层对象

    有关背景 请参考这个问题 访问嵌入式 JSON 的深层对象成员 https stackoverflow com q 53819904 3566998 那里提供的解决方案与键值中包含的打包 JSON 配合得很好 但是 它们不处理 JSON 具
  • 从静态方法获取应用程序实例

    在 Android 中使用静态方法获取应用程序继承者的实例是否正确 我在一些开源项目中看到过这种方法 VLC https github com mstorsjo vlc android blob master vlc android src