全局获取Conrtext

每一个活动都是Context的对象,当在普通类中用到Context时(如弹出Toast、启动活动、发送广播等)该如何获取呢?

解决方法:Android提供了一个Application类,在应用程序启动时,系统会自动对该类进行初始化。为了管理程序内全局的状态信息如全局Context,可以定制自己的Application类。

1、创建自己的Application类

 1 public class MyApplication extends Application {
 2     private static Context context;
 3
 4     @Override
 5     public void onCreate() {
 6         super.onCreate();
 7         context = getApplicationContext();
 8     }
 9     public static Context getContext(){
10         return context;
11     }
12 }

2、让系统启动时初始化自己的Application类,在AndroidMainfest.xml文件中<application>标签中进行指定

<application
        android:name=".MyApplication"//最好加上完整的包名,不然系统找不到该类
</application>

3、测试:在一个工具类中使用该类,成功显示Toast

//测试MyApplication
        Toast.makeText(MyApplication.getContext(),"MyApplication is working!",Toast.LENGTH_SHORT).show();

4、没有一个项目只能配置一个Application,如果需创建多个Application,在MyApplication中的onCreat()方法中对其他Application类初始化即可。如图:

5、笔记来源:第一行代码(13章全局获取Context的技巧)

原文地址:https://www.cnblogs.com/cydqqq/p/11205708.html

时间: 2024-10-13 18:50:13

全局获取Conrtext的相关文章

全局获取Context的技巧

全局获取Context的技巧 在android开发中,非常多地方都要用到Context上下文这个类对象,比方:弹出 Toast 的时候须要.启动活动的时候须要.发送广播的时候须要.操作数据库的时候须要.使用通 知的时候须要等. 假设是在Activity中,那么获取这个context对象非常easy,由于Activity本身就继承Context.直接受用this就能够了. 可是对于比較复杂的逻辑,这些代码没有放在Activity中.那么.获取Context就显得不是那么easy了. 这里告诉大家一

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

通过js获取class类名的函数封装

通过className获取元素,不同的浏览器会有不同的支持情况,所以为了兼容各个浏览器在这里,我写了几个函数获取className的值 function byclass(classn){//全局获取类 var tags=document.all ? document.all : document.getElementsByTagName('*'); var arr=[]; for (var i = 0; i < tags.length; i++) { //获取只有一个类名的元素 if (tags

onLaunch与onLoad同步获取用户数据

前言 在开发项目的时候遇到从全局获取用户信息,逻辑是从app.js中的onLauch获取,page页面的onLoad拿到数据填充到页面.遇到的问题是onLauch与onLoad是异步的,没办法从页面判断app.js中获取数据的先后,于是参照网上的方式用回调进行处理. 代码 app.js App({ globalData: { //需要获取的数据 userInfo: null, //回调函数 cb: null }, onLauch: function(){ //异步获取用户数据 wx.reques

Android 中保存全局变量

作者:silence鼬.2015年6月28日 在学习Android的时候一直未context的问题觉得头疼,因为想做一些工具类,但是又不是四大组件,总要来回传递context,觉得很麻烦,就想全局获取,最后看到application是全局单例的,所以改造一下. 1. 首先需要重写Application,主要重写里面的onCreate方法,就是创建的时候,初始化一个Map,这样就可以插入任意值.然后在整个应用中的各个文件中就可以对该变量进行操作了. 2. 在程序中有两种获得方式getInstanc

前端基础(一)

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 16.0px "PingFang SC"; color: #000000 } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 16.0px Helvetica; color: #000000 } p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 16.0px Helvetica; color: #000000;

关于js的兼容问题(小办法)!

今天整理了一下浏览器对JS的兼容问题,希望能给你们带来帮助,我没想到的地方请留言给我,我再加上: 常遇到的关于浏览器的宽高问题: //以下均可console.log()实验 var winW=document.body.clientWidth||document.docuemntElement.clientWidth;//网页可见区域宽 var winH=document.body.clientHeight||document.docuemntElement.clientHeight;//网页可