单例访问Android应用程序对象

1、单例模式:

单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例类的特殊类。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。

2、单例模式优势:

由于单例模式在内存中只有一个实例,减少了内存开销

单例模式可以避免对资源的多重占用。

单例模式可以在系统设置全局的访问点,优化和共享资源访问。

2、问题:需要从android应用程序中去访问全局数据

解决方案:子类化androdi.app.Application 把它作为一个有静态存取方法的单例来处理,子例化android.app.Application。模式是让该实例拥有所有的全局数据,然后将

Application 实例当做单例,用静态存取非法访问各种数据和服务。

3 、code:

 1 public class AndroidAppliation extends Application {
 2
 3     private static AndroidAppliation sInstance;
 4     private SessionHandler sessionHandler;
 5
 6     public static AndroidAppliation getInstance()
 7     {
 8         return sInstance;
 9     }
10
11     public sessionHandler getSessionHandler()
12     {
13         return sessionHandler;
14     }
15
16     public void OnCreate()
17     {
18         super.onCreate();
19         sInstance=this;
20         sInstance.initializeInstance();
21     }
22
23     private void initializeInstance() {
24         //do all your initialization here;
25         sessionHandler=new SessionHandler(this.getSharedPreferences("PRESS_PRIVATE", Context.MODE_PRIVATE));
26     }
27
28 }
时间: 05-07

单例访问Android应用程序对象的相关文章

java设计模式(1)-------单例,工厂,值对象,装饰模式

      java设计模式(1) 先简单的介绍下设计模式吧:是一种解决问题的一种行之有效的思想:用于解决特定环境下.重复出现的特定问题的解决方案. 那为什么我们需要学习设计模式呢? 1.设计模式都是一些相对优秀的解决方案,很多问题都是典型的.有代表性的问题,学习设计模式,我们就不用自己从头来解决这些问题,相当于在巨人的肩膀上,复用这些方案即可,站的高看到远,就是要站在巨人的肩膀上把他们踩下去,嘿嘿. 2.设计模式已经成为专业人士的常用词汇,不懂不利于交流,能让你变得很牛逼哦. 3.能让你设计的

浅谈应用工厂模式和单例在Android中实现业务隔离

Android中写应用,一样需要考虑到降低耦合性的问题,还有一些其他问题,比如App的增量式更新,业务变更的便捷实现等等,都会有工厂模式和单例的身影. 工厂模式是我们最常用的实例化对象模式了,是用工厂方法代替new操作的一种模式.因为工厂模式就相当于创建实例对象的new,我们经常要根据类Class生成实例对象,如A a=new A() 工厂模式也是用来创建实例对象的,所以以后new时就要多个心眼,是否可以考虑使用工厂模式,虽然这样做,可能多做一些工作,但会给你系统带来更大的可扩展性和尽量少的修改

用 Eclipse 开发 Android 应用程序

转自:http://www.apkbus.com/android-13828-1-1.html 开始之前 本教程介绍如何在 Eclipse 环境中进行 Android 应用程序开发,包括两个示例应用程序.第一个示例是一个基本的应用程序,涉及构建和调试的所有阶段.第二个应用程序示例涉及比较复杂的 Android 特性,包括联系人搜索和 Google Maps 地址查找.要想从本教程获得最大收益,具备移动开发经验会有帮助,但不是必需的.开发 Android 应用程序需要 Java? 编程技能,但是对

iOS开发之单例设计模式(完整正确版本)

单例的意思从字面上就可以略知一二,所谓单例就是确保在程序运行过程中只创建一个对象实例.可以用于需要被多次广泛或者说多次使用的资源中,比如我们常见的网络请求类.工具类以及其它管理类等.比如我iOS开发中常见的系统单例[UIApplication sharedApplication].[NSUserDefaults  standardUserDefaults]等.在iOS开发中,单例模式是非常有用的一种设计模式.如下图,是一个简单的例模式的UML类图. 一.使用单例模式的作用 它可以保证某个类在程序

iOS 页面间传值 之 单例传值 , block 传值

ios 页面间传值有许多,前边已经分享过属性传值和代理传值,今天主要说一下单例传值和 block 传值 单例传值:单例模式一种常用的开发的模式,单例因为在整个程序中无论在何时初始化对象,获取到的都是同一个对象,对象的属性相同,所以可以用来传值. block 传值 与 代理传值相似,主要用于第二个页面向第一个页面传值,block 传值具体步骤: 在第二个页面: 1.声明: block typedef void(^SendMessagerBlock) (NSString *str); 2.创建方法:

使用到定时器,单例和协议的一个小应用(2 )

上一篇文章写了一个简单的定时器,也可以正常的运行了.但是现在有一个问题,就是如果像我们手机上那个定时器程序一样.即使切换到闹钟或者世界时间的时候定时器依然要要在后在运行.我们刚才那种写法就并不行了.因为我们当我们转换其他界面的时候,已经退出了那个定时器的界面,意味着那个界面的Controller已经被销毁了.我们的定时器并不能在我们切换到其他界面的时候依然运行.这个时候需要一个怎样的方法来解决啦.我们就要用到一个在很多语言下都有的模式叫单例模式. 首先最重要的问题时搞懂什么叫做单例模式.在网上查

OC4_单例

// // MusicManager.h // OC4_单例 // // Created by zhangxueming on 15/6/19. // Copyright (c) 2015年 zhangxueming. All rights reserved. // #import <Foundation/Foundation.h> @interface MusicManager : NSObject //单例方法 //通常以 default 或者 shared 开头 + (MusicMana

iOS设计模式 - 单例

原理图 说明 1. 单例模式人人用过,严格的单例模式很少有人用过 2. 严格的单例模式指的是无法通过常规的 alloc init 方法来生成对象,派生出来的子类也不能产生出对象,而只能通过单例的方法获取到对象 源码 https://github.com/YouXianMing/SingletonPattern // // Singleton.h // SingletonPattern // // Created by YouXianMing on 15/8/6. // Copyright (c)

android里单例对象和某些数据被释放的问题

接触正式的android开发已经有一段时间了,项目的第一个版本终于快完成了.有一次自己在测试的时候,把自己的android项目切到后台,同时打开了几个应用之后重新切回到自己的app,发现报错了.经过排查,发现是自己的单例对象中的数据被释放掉了,也就是int变量的值 变成了0,string变量的值变成了null. 我的单例一开始是这样的(举例); public class UserInfo { private static UserInfo userInfo = null; private int