android学习之application

1. 是什么?
Application和Activity,Service一样是android框架的一个系统组件,当android程序启动时系统会创建一个 application对象,用来存储系统的一些信息。通常我们是不需要指定一个Application的,这时系统会自动帮我们创建,如果需要创建自己 的Application,也很简单创建一个类继承 Application并在manifest的application标签中进行注册(只需要给Application标签增加个name属性把自己的 Application的名字定入即可)。
  android系统会为每个程序运行时创建一个Application类的对象且仅创建一个,所以Application可以说是单例 (singleton)模式的一个类.且application对象的生命周期是整个程序中最长的,它的生命周期就等于这个程序的生命周期。因为它是全局 的单例的,所以在不同的Activity,Service中获得的对象都是同一个对象。所以通过Application来进行一些,数据传递,数据共享 等,数据缓存等操作。 
  
2. 怎么实现

第一步:写一个自定义的MyApplication类继承自Application 重写onCreate方法 ,在这个方法里面实例化Application

第二步:配置全局的Context

<application Android:name="com.appstore.service.MyApplication" ></application>

注意:在配置application时,一个项目中只能有一个application,一般做法是把我们默认的application配置成自定义的application。

第三步:使用,使用的时候用的时候根据类的名称访问Context

  1. 举例说明
public class MyApplication extends Application {

    private static MyApplication instance;

    private List<PointBean> points;
    private int count;

    public MyApplication() {

    }

    // 单例模式获取唯一的MyApplication实例
    public static MyApplication getInstance() {
        if (null == instance) {
            instance = new MyApplication();
        }
        return instance;
    }

    @Override
    public void onCreate() {
        // TODO Auto-generated method stub
        super.onCreate();
        points = new ArrayList<PointBean>();    
    }   

    @Override
    public void onTerminate() {
        // TODO Auto-generated method stub
        super.onTerminate();
    }

    public List<PointBean> getPoints() {
        return points;
    }

    public void setPoints(List<PointBean> points) {
        this.points = points;
    }

    public int getCount() {
        return count;
    }

    public void setCount(int count) {
        this.count = count;
    }

}

存数据

myapplication.setPoints(locations);
myapplication.setCount(index);

取数据

myapplication = (MyApplication) getApplicationContext();
points = myapplication.getPoints();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值