销售型网站有哪些,自动售货机免费投放联系方式,做物流网站费用,dedecms 食品网站模板有时我们需要在一个工具类中用到上下文context。当然有一个做法就是使用传递context的方法#xff0c;当我们需要用全局context的时候#xff0c;该怎么办呢#xff1f; 其实我们应用启动的时候会启动Application这个类#xff0c;这个类是在AndroidManifest.xml文件里其实…有时我们需要在一个工具类中用到上下文context。当然有一个做法就是使用传递context的方法当我们需要用全局context的时候该怎么办呢 其实我们应用启动的时候会启动Application这个类这个类是在AndroidManifest.xml文件里其实是默认的
applicationandroid:icondrawable/ic_launcherandroid:labelstring/app_nameactivityandroid:name.ApplicationDemoActivityandroid:labelstring/app_name intent-filteraction android:nameandroid.intent.action.MAIN /category android:nameandroid.intent.category.LAUNCHER //intent-filter/activity/application这个Application类是单例的,也就是说我们可以自己写个Application(比如名为MainApplication)类来代替默认的Applicaiton,这个类可以保存应用的全局变量 1我们可以定义一个全局的Context.供外部调用 .用法如下 package com.example.contextandroid;import android.app.Application;
import android.content.Context;public class MainApplication extends Application{/*** 全局的上下文*/private static Context mContext;Overridepublic void onCreate() {super.onCreate();mContext getApplicationContext(); }/*** 获取context* return*/public static Context getContext(){return mContext;}Overridepublic void onLowMemory() {super.onLowMemory();}}
我们需要在(2) AndroidMainifest.xml把MainApplication注册 进去(第10行代码)
?xml version1.0 encodingutf-8?
manifest xmlns:androidhttp://schemas.android.com/apk/res/androidpackagecom.tutor.applicationandroid:versionCode1android:versionName1.0 applicationandroid:icondrawable/ic_launcherandroid:labelstring/app_nameandroid:name.MainApplication activityandroid:name.ApplicationDemoActivityandroid:labelstring/app_name intent-filteraction android:nameandroid.intent.action.MAIN /category android:nameandroid.intent.category.LAUNCHER //intent-filter/activity/application/manifest
那么我们在一个.java文件的工具类中。可以这样调用全局的context: /** * 调用全局的Context. * param msg */ public static void showToast(String msg){ Toast.makeText(MainApplication.getContext(), msg, Toast.LENGTH_SHORT).show(); }