如何在android中使用Context?

问题描述 投票:0回答:1
WifiManager wifimanager = (WifiManager) context.getApplicationContext().getSystemService(Context.WIFI_SERVICE);

为什么要使用 "上下文"?context 这里用的是什么?

谁能解释一下?

android android-wifi android-context
1个回答
3
投票

根据 正式文件

Context 是应用环境的全局信息。 这是一个 abstract 类,其实现是由 Android 系统。它允许访问特定于应用程序的资源和类,以及应用程序级操作的上调,如启动活动、广播和接收意图等。

如果你想使用 WIFI_SERVICE 这是个 特定应用资源你必须使用 context 来检索资源。

如果你在活动或片段中,那么你可以调用 getApplicationContext().getSystemService(Context.WIFI_SERVICE) 直接使用 context 对象,因为activity和fragments继承自 Context 类。

但如果你在一个非 ActivityFragment 类,那么你就必须将活动或片段的上下文对象(带有构造函数或设置函数)传递给该类,以便获得应用程序特定的资源。

一个例子

public class AnyClass{

    private Context context;

    public AnyClass(Context context){
        this.context = context;
    }

    ...

    WifiManager wifimanager = (WifiManager) context.getApplicationContext().getSystemService(Context.WIFI_SERVICE);
}
© www.soinside.com 2019 - 2024. All rights reserved.