【问题标题】:What will be the context for CONNECTIVITY_SERVICE in Fragment?片段中 CONNECTIVITY_SERVICE 的上下文是什么?
【发布时间】:2022-04-08 00:58:38
【问题描述】:

片段中 CONNECTIVITY_SERVICE 的上下文是什么?我也检查了 getActivity 但它给出了一个错误。

public boolean isOnline() {
    ConnectivityManager connectionManager = (ConnectivityManager) 
        getSystemService(Context.CONNECTIVITY_SERVICE);
    try {
        if (connectionManager.getActiveNetworkInfo().isConnected()) {
            Log.d("ConStatus", "Data Connection On");
            return true;
        } else {
            Log.d("ConStatus", "Data Connection off");
            return false;
        }
    } catch (NullPointerException e) {
        Log.i("ConStatus", "No Active Connection");
        return false;
    }
}

【问题讨论】:

  • 您可以在使用 getActivity 时提供堆栈跟踪吗?
  • 我写了 getSystemService(getActivity().CONNECTIVITY_SERVICE);它自己给出一个错误请创建一个方法getSystemService。

标签: android android-fragments android-connectivitymanager


【解决方案1】:

getSystemService()Context 上的一个方法。 Fragment 会使用 getActivity() 调用它:

getActivity().getSystemService(Context.CONNECTIVITY_SERVICE);

【讨论】:

  • 我正在使用 barsherlock 片段,但它崩溃了。在我的情况下给我 Nullpointer 异常
【解决方案2】:

我在尝试在片段中实现 Google 地图离线图块提供程序时遇到了类似的问题(基于 0ne_Up 的回答 here)。我使用以下方法解决了它:

private ConnectivityManager connectivityManager;
...
connectivityManager = (ConnectivityManager) getActivity().
    getSystemService( getActivity().CONNECTIVITY_SERVICE );

【讨论】:

    猜你喜欢
    • 2017-05-08
    • 1970-01-01
    • 1970-01-01
    • 2014-12-26
    • 1970-01-01
    • 2019-12-02
    • 2016-10-19
    • 2020-02-14
    • 2013-10-24
    相关资源
    最近更新 更多