java - Android - 在 fragment 中使用连接管理器

标签 java android multithreading http

好吧,我在 UI 线程中遇到了网络使用问题,现在使用 AsyncTask。我正在使用 Fragment,但遇到了问题。

放置此行时:

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

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

 new DownloadWebpageTask().execute(stringUrl);

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

关于如何解决这个问题有什么想法吗?

最佳答案

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

您可以通过像这样更改它来使其静态:

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

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

mainactInstance.new DownloadWebpageTask();

关于java - Android - 在 fragment 中使用连接管理器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16702058/

相关文章:

java - Java Mobile 中的蓝牙 : Handling connections that go out of range

java - 如何向调用者线程发出 ExecutorService 已完成任务的信号

java - 在addActionListener中找不到文件名,JAVA

java - 如果我在非 EDT 的单个线程上处理 GUI,它仍然是线程安全的吗?

java - 在 Maven POM 中禁用 distributionManagement

android - Android 后台服务 (Xamarin)

java - 如何从数组创建 Observable?

android - Maps V2 如何旋转标记 - 旋转选项在哪里?

android - Android studio 中没有 xml 布局的新 Activity

multithreading - 如果我有 1 个线程写入和 1 个线程读取 int32,它是线程安全的吗?