Android开发之Android Context,上下文(Activity Context, Application Context)

本文探讨了Android中的Context概念,解释了Activity和Application作为Context的区别,并提到了在编程中如何处理Context的引用保持问题。内容包括Context在加载资源、启动服务等场景中的角色,以及Activity、Service和Application的Context实现细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Context概念

在加载资源、启动服务、启动一个新的Activity、获取内部文件路径、创建view操作都需要Context参与。
Activity 、Service、Application都是Context的子类。
Android系统上理解:Context是一个场景、代表与操作系统交互的一个过程。
从程序角度:Context是一个抽象类,Activity、Service、Application都是他的一个子类实现。
Activity、Service、Application都继承与ContextWrapper,而ContextWrapper内部包含一个basecontext,而这个base context去实现了大多方法。
在这里插入图片描述

Activity 和Application做为Context的区别

Activity.this 返回的是当前Activity实例、getApplicationContext 返回的时当前项目的Application实例。

引用的保持

在编写工具类的时候可能会写成单列模式,可能涉及到Context的引用。
例如:

package com.mooc.shader.roundimageview;  
  
import android.content.Context;  
  
public class CustomManager  
{  
    private static CustomManager sInstance;  
    private Context mContext;  
  
    private CustomManager(Context context)  
    {  
        this.mContext = context;  
    }  
  
    public static synchronized CustomManager getInstance(Context context)  
    {  
        if (sInstance == null)  
        {  
            sInstance = new CustomManager(context);  
        }  
        return sInstance;  
    }  
      
    //some methods   
    private void someOtherMethodNeedContext()  
    {  
          
    }  
}

这个Context从哪里来我们并不确定。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值