Android 中的单例

2023-11-23

我已经点击此链接并成功在 Android 中创建了单例类。http://www.devahead.com/blog/2011/06/extending-the-android-application-class-and-dealing-with-singleton/

问题是我想要一个对象。就像我有活动 A 和活动 B 一样。在活动 A 中,我从 Singleton 访问该对象class。我使用该对象并对其进行了一些更改。

当我移动到 Activity B 并从 Singleton 类访问该对象时,它给了我初始化的对象,并且不保留我在 Activity A 中所做的更改。 还有其他方法可以保存更改吗? 请专家帮帮我。 这是MainActivity

public class MainActivity extends Activity {
    protected MyApplication app;        
    private OnClickListener btn2=new OnClickListener() {    
        @Override
        public void onClick(View arg0) {
            Intent intent=new Intent(MainActivity.this,NextActivity.class);
            startActivity(intent);              
        }
    };
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //Get the application instance
        app = (MyApplication)getApplication();

        // Call a custom application method
        app.customAppMethod();

        // Call a custom method in MySingleton
        Singleton.getInstance().customSingletonMethod();

        Singleton.getInstance();
        // Read the value of a variable in MySingleton
        String singletonVar = Singleton.customVar;

        Log.d("Test",singletonVar);
        singletonVar="World";
        Log.d("Test",singletonVar);

        Button btn=(Button)findViewById(R.id.button1);
        btn.setOnClickListener(btn2);
    }

}

This is NextActivity

public class NextActivity extends Activity {

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_next);

            String singletonVar = Singleton.customVar;

            Log.d("Test",singletonVar);
        }
  }

Singleton Class

public class Singleton
{
    private static Singleton instance;

    public static String customVar="Hello";

    public static void initInstance()
    {
    if (instance == null)
    {
      // Create the instance
      instance = new Singleton();
    }
    }

    public static Singleton getInstance()
    {
     // Return the instance
     return instance;
     }

     private Singleton()
     {
     // Constructor hidden because this is a singleton
     }

     public void customSingletonMethod()
     {
     // Custom method
     }
 }

and MyApplication

public class MyApplication extends Application
    {
    @Override
    public void onCreate()
    {
    super.onCreate();

     // Initialize the singletons so their instances
     // are bound to the application process.
     initSingletons();
     }

     protected void initSingletons()
     {
     // Initialize the instance of MySingleton
     Singleton.initInstance();
     }

     public void customAppMethod()
     {
     // Custom application method
    }
}

当我运行这段代码时,我得到了我已经初始化的HelloSingleton我给予它的世界MainActivity并再次显示 HelloNextActivity在 logcat 中。 我希望它再次向世界展示NextActivity。 请帮我纠正这个问题。


Tip:创建单例类在 Android Studio 中,右键单击您的项目并打开菜单:

New -> Java Class -> Choose Singleton from dropdown menu

enter image description here

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

Android 中的单例 的相关文章

  • SugarORM 错误或缺少数据库

    我尝试让 Android 项目与 SugarORM 一起使用 但是 我遇到了以下错误 引起原因 android database sqlite SQLiteException 没有这样的表 DOCUMENT 代码1 编译时 INSERT O
  • 从数据库中删除项目后如何从 recyclerView 中删除项目

    我正在使用 recyclerView 来显示当用户单击每个项目的删除按钮时可以删除的项目列表 为了做到这一点 我使用了 recyclerview 适配器 我想要的是 从该 recycleView 适配器中 当用户单击某个项目的删除按钮时 会
  • 带有垂直选项卡的 Android 布局 - 设计类似于 hello 短信应用程序

    Can somebody please help me out in designing vertical tabs like in the given pic taken from hello sms app 我不要求提供代码片段 所以请
  • Dagger 2 不会注入我的对象,但可以从组件中获取

    我有我的组件 GithubListActivityScope Component modules GithubListActivityModule class GlideActivityModule class public interfa
  • POST 请求出现 500 内部服务器错误

    这是我向服务器发送 POST 请求的代码 要发布到服务器的 JSON User Name dog Password 123 我如何创建 JSON 对象 object new JSONObject JSONObject jsonObject
  • 如何在android上模拟PC的Esc键

    我正在写一个可以在android上玩flash的应用程序 但是我无法模拟ESC键 因为很多flash游戏需要ESC键才能返回主菜单 没有这个键我制作的应用程序将毫无用处 谁能告诉我如何模拟这个 我可以只发送一个密钥代码吗 但我也不知道键码
  • 如何在 Android 中启用/禁用日志级别?

    例如 我有很多日志语句需要调试 Log v TAG Message here Log w TAG WARNING HERE 在设备电话上部署此应用程序时 我想关闭详细日志记录 我可以在其中启用 禁用日志记录 The Android 文档对日
  • 如何知道 TTS 何时完成?

    我正在 Android 上实现交互式语音响应应用程序 我想知道如何确定何时tts speak 函数已完成通话 因此我可以调用我的语音识别器函数 public class TTSActivity extends Activity implem
  • 在android中点击地图获取坐标

    我正在尝试做这样的事情 我有一个地图活动 当用户点击地图时 它会显示该位置的坐标 我已经重写了 onclick 方法 但它甚至没有被调用 任何想法 public class MapPoint extends MapActivity impl
  • Android:可以写入lib目录吗?

    是否可以以编程方式将文件复制到 data data application package lib 目录中 或在 data data application package lib 目录中创建符号链接 当尝试写入 lib 目录时 我总是收到
  • 使用 Android Exoplayer 调整 Dash 流音量

    我正在尝试设置一个搜索栏来控制 exoplayer 流式破折号实例的级别 我正在使用的设置是演示项目的修改版本 并且无法确定我应该尝试影响搜索栏输出的哪个元素 即如何正确使用 MSG SET VOLUME 等 任何意见将不胜感激 我正在寻找
  • 将 XML 从网站解析到 Android 设备

    我正在启动一个 Android 应用程序 它将解析来自网络的 XML 我创建了一些 Android 应用程序 但它们从未涉及解析 XML 我想知道是否有人对最佳方法有任何建议 这是一个例子 try URL url new URL your
  • 按歌曲获取封面图片

    是否可以按歌曲而不是按专辑获取封面图片 因为我有一张自编的歌曲专辑 而且它们都有不同的封面图片 但是当我想查询它们时 我总是得到相同的图片 String ARG STRING MediaStore Audio Media ALBUM ID
  • 通过使用 DownloadManager,我如何查看设备中所有活动/正在运行的下载?

    通过使用 DownloadManager 我如何查看设备中所有活动 正在运行的下载 My code DownloadManager Query query null Cursor c null DownloadManager downloa
  • logcat 信息出现在 Android Studio 的“运行”选项卡中

    我的 android studio 运行选项卡很简单 然后它变得更难并给我更多信息 例如 logcat 中的信息 如何禁用或删除第二张图片中出现的更多信息并返回到第一张图片中的第一个外观 我只需要正在运行的 flutter 应用程序的日志输
  • 在 Android KitKat 中接收彩信

    所以这个视频Android 4 4 短信 API http www youtube com watch v mdq0R2WQssQ DevBytes 解释了 KitKat 中 SMS API 的最新变化 他们还提供了示例项目的链接 http
  • 具有通用类的自定义 Android 适配器

    我正在尝试在 Android 中创建一个通用适配器 所以我不能一遍又一遍地编写它 问题是 它正在工作 但它的回收效果不是很好 它显示了我想要的内容 但是当我滚动时 它的顺序不同 public class CustomListViewAdap
  • Oreo:应用程序未运行时不会触发警报

    我有相对简单的设置 应该在一天中的特定时间触发警报并向用户显示通知 这是相关代码 设置闹钟 long inTime expirationTime Calendar getInstance getTimeInMillis 10000 Inte
  • 在 Android 中将列表传递给另一个 Activity

    我已经创建了一个列表 并希望将该列表传递给另一个活动 但当我创建意图时 我在 putExtra 语句上收到错误 只是想知道是否有任何简单的方法来传递字符串列表而不是单个字符串 Thanks private List
  • 什么是 Android DecorView?

    http developer android com reference android view Window html getDecorView http developer android com reference android

随机推荐

  • 将矩阵 R 中的所有元素相加

    我正在尝试添加矩阵中的所有元素 这是我的矩阵的示例 实际矩阵更大 m matrix c 528 479 538 603 nrow 2 ncol 2 m A B male 528 538 female 479 603 我正在尝试这样做 sum
  • React-native 中“不存在捆绑包 URL”是什么意思?

    当我运行react native项目时 出现错误no bundle URL present 但我不知道自己犯了什么错误 我很困惑 解决错误No bundle URL present by 在项目根目录中运行以下命令来删除 iOS 构建目录
  • 允许在运行时不动态分配数组大小吗? [复制]

    这个问题在这里已经有答案了 我已经使用 C 几年了 今天我看到了一些代码 但这怎么可能是完全合法的呢 int main int argc char argv size t size cin gt gt size int array size
  • 如何使用Java获取上传到Amazon S3的文件的进度状态

    我正在使用 Java 将多个文件上传到 Amazon S3 我使用的代码如下 MultipartHttpServletRequest multipartRequest MultipartHttpServletRequest request
  • R:使用省略号参数 (...)

    我想创建一个包装函数来替换一些默认参数 这是我正在努力解决的问题的核心 Error in localWindow xlim ylim log asp formal argument cex matched by multiple actua
  • 在 ClientWebSocket 中设置“User-Agent”HTTP 标头

    我需要在 a 中设置 User Agent HTTP 标头ClientWebSocket对象 但这是不可能的 虽然有一个ClientWebSocket SetRequestHeader header value 如果我尝试设置该标头 该方法
  • 如何将 requestdispatcher 转发到远程 URL

    我有一个 HTML 页面http www mywebapp com sample html这是从远程服务器使用的 我正在将 HTML URL 作为隐藏表单在同一 HTML 表单中传递
  • 将 pandas DataFrame 写入 Excel,针对不同的列使用不同的格式

    我正在尝试写一个熊猫DataFrame to an xlsx文件 其中不同的数字列将具有不同的格式 例如 有些仅显示两位小数 有些不显示 有些将格式化为带有 符号的百分比 等等 我注意到DataFrame to html has a for
  • 更改 PyPI 上包名称的大小写

    我最近将一个包上传到 PyPI 名称为混合大小写字母 QualysAPI 回想起来 我认为包名称最好全部小写PEP 8 我有办法改变它吗 当我尝试在 Pypi 上手动编辑包名称时 会发生以下情况 禁止 包名称与现有包 QualysAPI 冲
  • Promise.then.then 和 Promise.then; 之间有区别吗?承诺.然后[重复]

    这个问题在这里已经有答案了 我想知道以下两者有区别吗 aPromiseObj then fn1 then fn2 catch fn3 aPromiseObj then fn1 aPromiseObj then fn2 aPromiseObj
  • 如何初始化一系列不可移动、不可复制的对象?

    假设我有一个既不可移动也不可复制的类型 struct foo explicit foo size t foo foo foo const delete foo foo delete foo operator foo const delete
  • Java 8 添加没有时间段的天数

    这里是 Java 8 我正在尝试采取当前Date 现在 添加一天 并获得新的Date代表明天的实例 没有时间成分 只有年 月和日 我最好的尝试 Calendar calendar Calendar getInstance calendar
  • 如何在 ggplot2 中创建 Marimekko/马赛克图

    当 x 和 y 都是分类变量时 Marimekko Mosaic 图是一个很好的默认图 使用 ggplot 创建这些的最佳方法是什么 我能找到的唯一参考资料是这个 4yo博客文章但这似乎有点过时了 现在有更好或更简单的实现吗 GGally包
  • 将 CM Synergy 存档转换为免费源代码控制

    由于规模缩小和节省成本 我们的组织正在从 CM Telogic Rational Synergy 转向免费工具 最有可能是 SVN 有没有办法将历史记录和分支信息从 Synergy 转移到免费工具 我不知道将 CM Synergy 源库转储
  • Swift 3 将 SecKey 导出为字符串

    我正在使用 swift 3 开发一个 iOS 应用程序 我需要导出一个SecKey 这是用户 RSA 公钥引用 到字符串 例如 base64 以便通过生成的 QRCode 共享它 它也必须以另一种方式工作 因为扫描该文件的其他用户QRCod
  • 在 Bootstrap 4 中将 Modal 对齐到右侧

    我正在使用 Bootstrap 4 我希望模态右对齐 参见图片我的意思 这是我到目前为止的代码 我从 Bootstrap 文档中得到它
  • 应用内购买中的 SKErrorDomain 代码=0

    今天测试IAP时sandbox模式 我们突然得到SKPaymentTransactionStateFailed带有错误消息 错误域 SKErrorDomain代码 0 无法连接到iTunes Store UserInfo NSLocaliz
  • 是否有针对世界上所有地址的通用街道地址数据库设计? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我是一名程序员 需要一种实用的方法来将世界的街道地址结构存储在数据库中 那么 存储街道地址的最佳且常见的数据库设计是什么 它应该使用简单 查询快速并
  • system() 到 c# 而不调用 cmd.exe

    如何在不调用 cmd exe 的情况下将 system 转换为 C 编辑 我需要抛出类似 dir 的东西 如果我正确理解你的问题 那么你正在寻找进程 开始 请参阅此示例 来自文档 Opens urls and html documents
  • Android 中的单例

    我已经点击此链接并成功在 Android 中创建了单例类 http www devahead com blog 2011 06 extending the android application class and dealing with