首页 > 代码库 > android实现任意文件访问Context

android实现任意文件访问Context

在android编程中,大家应该常常会遇到这样的一个问题。android都是需要通过Context来获取res下面的资源,但是我们不可能将所有的代码都写在Activity中,我们通过一些类专门负责对不同资源的处理,也就是说我们可能会遇到在其它文件中通过Context来获取或改变程序状态,我们应该如何在Activity或者继承Activity以外的java文件中获取安卓程序的Context呢?

我们可以定义一个用单例模式定义一个继承Application的类ContextUtils

package com.hcd.itetris.utils;

import android.app.Application;

/**
 * Created by hcd on 14-11-8.
 * Author:Jvaeyhcd
 */
public class ContextUtils extends Application {
    private static ContextUtils instance;

    public static ContextUtils getInstance() {
        return instance;
    }

    @Override
    public void onCreate() {
        super.onCreate();
        instance = this;
    }
}

在工程代码任何位置,都可以通过ContextUtils.getInstance()来获取Android程序的Context。

注意:

需要在AndroidManifest.xml文件中声明<application android:name="package-name.ContextUtils"/>

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.hcd.itetris" >

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/fullscreem"
        android:name=".utils.ContextUtils">
        <activity
            android:name=".TetrisActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>


android实现任意文件访问Context