全局获取Context的技巧

全局获取Context的技巧

在android开发中,非常多地方都要用到Context上下文这个类对象,比方:弹出 Toast

的时候须要、启动活动的时候须要、发送广播的时候须要、操作数据库的时候须要、使用通

知的时候须要等。

假设是在Activity中,那么获取这个context对象非常easy,由于Activity本身就继承Context。直接受用this就能够了。

可是对于比較复杂的逻辑,这些代码没有放在Activity中。那么。获取Context就显得不是那么easy了。

这里告诉大家一个技巧:

Android 提供了一个 Application 类。每当应用程序启动的时候,系统就会自己主动将这个类

进行初始化。

而我们能够定制一个自己的 Application 类, 以便于管理程序内一些全局的状态信息,比方说全局 Context。

1,新建一个类MyApplication继承Application.

代码例如以下:

package com.example.networktest;
public class MyApplication extends Application {
    private static Context context;
    @Override
    public void onCreate() {
        context = getApplicationContext();
    }
    public static Context getContext() {
        return context;
    }
}

2,在 AndroidManifest.xml 文件的<application>标签下进行指定就能够了,代码例如以下所看到的:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.networktest"
android:versionCode="1"
android:versionName="1.0" >
……
<application
android:name="com.example.networktest.MyApplication"
…… >
……
</application>
</manifest>

注意:指定 MyApplication 的时候一定要加上完整的包名,不然系统将无法找到这

个类。

这样我们就已经实现了一种全局获取 Context的机制,之后无论你想在项目的不论什么地方

使用 Context,仅仅须要调用一下 MyApplication.getContext()就能够了。

时间: 2024-10-13 17:34:16

全局获取Context的技巧的相关文章

android#全局获取Context的技巧

参考<第一行代码>——郭霖 回想这么久以来我们所学的内容,你会发现有很多地方都需要用到Context,弹出Toast的时候需要.启动活动的时候需要.发送广播的时候需要.操作数据库的时候需要.使用通知的时候需要等等等等.或许目前你还没有为得不到Context而发愁过,因为我们很多的操作都是在活动中进行的,而活动本身就是一个Context对象.但是,当应用程序的架构逐渐开始复杂起来的时候,很多的逻辑代码都将脱离Activity类,但此时你又恰恰需要使用Context,也许这个时候你就会感到有些伤脑

Android 全局获取 Context 与使用 Intent 传递对象

=====================全局获取 Context======================== Android 开发中很多地方需要用到 Context,比如弹出 Toast.启动活动.发送广播.操作数据库…… 由于很多操作都是在活动中进行的,而活动本身就是一个 Context 对象,所以获取 Context 并不是那么困难. 但是,当应用程序的架构逐渐开始复杂起来的时候,很多的逻辑代码都将脱离 Activity 类,由此在某些情况下,获取 Context 并非那么容易. An

全局获取Context

在很多地方都需要用到Context,但在特殊情况下无法获取Context, 需要定义自己的Application,既可以利用我们自己的类来获取Context public class MyApplication exends Application{ private static Content content;重写父类的onCreate方法,并调用getApplicationContext()方法得到一个应用程序级别的Context然后静态方法将其返回 public void onCreate

全局获取Conrtext

每一个活动都是Context的对象,当在普通类中用到Context时(如弹出Toast.启动活动.发送广播等)该如何获取呢? 解决方法:Android提供了一个Application类,在应用程序启动时,系统会自动对该类进行初始化.为了管理程序内全局的状态信息如全局Context,可以定制自己的Application类. 1.创建自己的Application类 1 public class MyApplication extends Application { 2 private static

Android-获取全局Context的技巧-android学习之旅(68)

我们常常须要获取全局的Context ,比方弹出Toast,启动活动,服务,接收器,还有自己定义控件,操作数据库,使用通知等 通常的方法是在调用的地方传入Context參数 ,有时候这样的不会奏效,教给大家一种通用的方法 继承Application类,然后获取静态Content 代码例如以下 public class MyApplication extends Application{ private static Context context; @Override public void o

如何在Fragment中获取context

文章转载自http://blog.csdn.net/demonliuhui/article/details/51511136 这里仅供自己学习参考: Context,中文直译为"上下文",SDK中对其说明如下: 1.它描述的是一个应用程序环境的信息,即上下文. 2.该类是一个抽象(abstract class)类,Android提供了该抽象类的具体实现类(后面我们会讲到是ContextIml类). 3.通过它我们可以获取应用程序的资源和类,也包括一些应用级别操作,例如:启动一个Acti

关于在Android设置全局变量随时获取context

最实在的办法就是继承Application,在里面设置全局变量,因为Application是android的应用入口,并且运行周期贯穿整个程序运行. import android.app.Application; public class MyApplication extends Application{ private static Context mContext; public static Context getContext (){ return this.mContext; } p

在fragment中使用listview获取context

使用 getActivity() ArrayAdapter adapter = new ArrayAdapter(getActivity(), // 获取上下文 android.R.layout.simple_list_item_1, new String[]{"插入排序", "合并排序", "快速排序", "堆排序"});

fragment中通过getActivity()获取Context空指针

最近在搞蓝牙通信的时候碰到一个很恼火的问题,就是在Fragment中使用activity的方法,,,new一个activity老是报空指针. 解决方法: 在Fragment的onAttach(Context context)方法中调用(activity)getActivity()即可解决; 哈哈,很简单吧... 原文地址:https://www.cnblogs.com/dmrbell/p/11316530.html