前言:
Android提供了一个Application类,每当应用程序启动的时候,系统就会自动将这个类进行初始化,而我们可以定制一个自己的Application类,以便管理程序内的一些全局状态信息,比如说全局Context。
定制自己的Application只需要继承Application就可以了。
public class MyApplication extends Application {
private static Context mContext;
@Override
public void onCreate() {
super.onCreate();
//获取context
mContext = getApplicationContext();
}
//创建一个静态的方法,以便获取context对象
public static Context getContext(){
return mContext;
}
}
是不是很简单,当然还要修改Manifest中的内容,用以告诉程序启动时初始化Myapplication类,而不是Application类。下面我就用一个简单的实例来演示一下吧。
效果展现:
效果解释:我在MainActivity中的onCreate()方法中调用自定义的一个类中的方法,这个方法中有Toast()方法。
实现步骤:
1.自定义一个类继承Applicatioon类
public class MyApplication extends Application {
private static Context mContext;
@Override
public void onCreate() {
super.onCreate();
//获取context
mContext = getApplicationContext();
}
//创建一个静态的方法,以便获取context对象
public static Context getContext(){
return mContext;
}
}
2.在Manifest添加一句语句:原因上面说过了
<application
//注意是完整的路劲,我这个是因为前面有一句:package="com.example.getcontexttest"
android:name=".util.MyApplication"
............
</application>
3.自定义一个类,创建一个静态方法,用于验证:
public class GetContext {
public static void toastNews(){
Context context = MyApplication.getContext();
Toast.makeText(context, "hello world", Toast.LENGTH_SHORT).show();
}
}
最后调用这个方法:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
GetContext.toastNews();
}
}