【问题标题】:Android - Using Connectivity Manager in a FragmentAndroid - 在片段中使用连接管理器
【发布时间】:2013-05-18 02:41:44
【问题描述】:

好的,所以我在 UI 线程中遇到了网络使用问题,现在正在使用 AsyncTask。我正在使用 Fragments,但遇到了问题。

当放置这一行时:

    ConnectivityManager connMgr = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);

我必须添加 getActivity(),因为它在一个 fragmetn 中,然后错误消失,但随后我在这一行得到一个错误:

 new DownloadWebpageTask().execute(stringUrl);

错误是:“没有 MainActivity 类型的封闭实例可访问。必须使用 MainActivity 类型的封闭实例限定分配(例如 x.new A(),其中 x 是 MainActivity 的实例)。”

关于如何解决这个问题的任何想法?

【问题讨论】:

标签: java android multithreading http


【解决方案1】:

我的猜测是您的DownloadWebpageTaskMainActivity 的非静态嵌套类。

你可以像这样改变它使其成为静态:

public static class DownloadWebpageTask extends AsyncTask<..> {
...
}

或者,您可以使用MainActivity 的实例创建一个新的DownloadWebpageTask,如下所示:

mainactInstance.new DownloadWebpageTask();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-01
    • 2023-02-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多