Android - 在片段中使用连接管理器

时间:2013-05-22 21:42:25

标签: java android multithreading http

好的,我在UI线程中遇到网络使用问题,现在使用AsyncTask。我正在使用碎片并遇到问题。

放这行时:

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

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

 new DownloadWebpageTask().execute(stringUrl);

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

有关如何解决此问题的任何想法?

1 个答案:

答案 0 :(得分:1)

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

您可以通过更改它来使其静止:

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

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

mainactInstance.new DownloadWebpageTask();