java Android 2.3.3 internet可以在我的Galaxy S上运行,但不能在我的Galaxy选项卡上运行?(许可?)
我有一个奇怪的问题。我正在检索推特,它可以在模拟器上运行,也可以在三星Galaxy S上运行,但在Galaxy Tab 10.1上不运行
手机和标签上都安装了相同的应用程序。从Eclipse生成,因此无需调试或任何操作
需要不同的权限吗
代码如下:
HttpClient client = new DefaultHttpClient();
HttpGet get = new HttpGet(searchUrl);
ResponseHandler<String> responseHandler = new BasicResponseHandler();
responseBody = client.execute(get, responseHandler);
这是舱单:
<uses-sdk 安卓:minSdkVersion="10" />
<uses-permission 安卓:name="安卓.permission.INTERNET" />
<uses-permission 安卓:name="安卓.permission.ACCESS_NETWORK_STATE"/>
# 1 楼答案
我发誓,这个问题每天都被问到
问题是您正在主UI线程上执行网络访问。如果您试图在主线程上执行HTTP请求,Android 3.0及以上版本将使您的应用程序崩溃(即系统将抛出
NetworkAccessOnMainThread
异常)。您需要将HTTP请求包装在AsyncTask
(或某种类型的Thread
)中,以确保不阻塞UI线程阅读我关于这个主题的博客帖子:
Why Ice Cream Sandwich Crashes Your App
# 2 楼答案
使用这个代码,它适合我