我正在尝试从Java代码怪胎中为我的首选示例之一修复线程错误。
这是代码:
public class JsonParsingActivity extends Activity {
String url = "http://search.twitter.com/search.json?q=javacodegeeks";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
new RetreiveFeedTask().execute(url);
}
}
RetrieveFeedTask:
public class RetreiveFeedTask extends
AsyncTask<String, Void, JsonParsingActivity> {
private Exception exception;
String url = "http://search.twitter.com/search.json?q=javacodegeeks";
protected JsonParsingActivity doInBackground(String... urls) {
try {
InputStream source = retrieveStream(url);
Gson gson = new Gson();
Reader reader = new InputStreamReader(source);
SearchResponse response = gson.fromJson(reader, SearchResponse.class);
// Toast.makeText(this, response.query, Toast.LENGTH_SHORT).show();
List<Result> results = response.results;
for (Result result : results) {
Toast.makeText(JsonParsingActivity.class, result.fromUser, Toast.LENGTH_SHORT).show();
}
} catch (Exception e) {
this.exception = e;
return null;
}
}
protected void onPostExecute(JsonParsingActivity feed) {
// TODO: check this.exception
// TODO: do something with the feed
}
private InputStream retrieveStream(String url) {
DefaultHttpClient client = new DefaultHttpClient();
HttpGet getRequest = new HttpGet(url);
try {
HttpResponse getResponse = client.execute(getRequest);
final int statusCode = getResponse.getStatusLine().getStatusCode();
if (statusCode != HttpStatus.SC_OK) {
Log.w(getClass().getSimpleName(), "Error " + statusCode
+ " for URL " + url);
return null;
}
HttpEntity getResponseEntity = getResponse.getEntity();
return getResponseEntity.getContent();
} catch (IOException e) {
getRequest.abort();
Log.w(getClass().getSimpleName(), "Error for URL " + url, e);
}
return null;
}}
做到无误的最佳方法是什么?当前正在显示Toast错误(?)。
您无法在中做任何UI
事情doInBackground()
。因此,您不能在Toast
那里显示一个。您需要将此移动到onPostExecute()
其他地方。可能onProgressUpdate()
你可以调用publishProgress(results)
,并显示Toast
在onProgressUpdate()
或return results
到onPostExecute()
并显示它。您还可以选择将数据发送回Activity
方法
异步任务
我正试图通过cmd启动logstash。我有正确的目录,但是当我输入命令启动它时,它会出现以下错误(见图中所示): 请帮帮我。
我已经创建了一个PHP脚本,如果使用该脚本,它总是去其他条件,我不知道为什么它不去其他条件。 输出: _msg“:”缺少必需的参数(电话、姓名、生日、地址)!"} 如果传递了该值,则应转到If条件而不是else条件。 已尝试的选项 尝试以下选项,但我得到空值: $test=$_POST['phone'];回声“嘿……”$测验 echo isset($_POST['phone']); 使用的URLh
我使用useState获取窗口高度,但它给出了一个运行时错误,表示未定义窗口。你知道为什么吗 代码如下:
上个星期左右,我一直在努力让它发挥作用,但仍然不知道问题出在哪里。它适用于android 2.1,但不适用于4.1。我在一个服务中得到了这个字符串,该服务检查我应用程序中的更新。 它在checkForUpdate()中调用;在onStart(Intent-Intent,int-startId)中调用;。 这是logcat的错误 那么,Android是放弃了向后兼容,还是刚刚忘记添加这一点? 我读到
首选项:我的android首选项是 API级别18 Android 4.3 这就是我如何读取url
我在运行RssReader的Android项目时出错。 代码: 它显示了以下错误: 如何解决此问题?