公共类HttpHelper扩展AsyncTask
@Override
protected ArrayList<String> doInBackground(String... urls) {
// TODO Auto-generated method stub
String result="";
for(String url:urls)
{
HttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet(url);
try
{
HttpResponse response = client.execute(request);
InputStream in = response.getEntity().getContent();
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String line = null;
StringBuffer sb = new StringBuffer();
while((line = br.readLine())!=null)
{
sb.append(line+"\n");
}
in.close();
result = sb.toString();
String pageSource = new String(result);
int startindex = pageSource.indexOf("pdf_doc/");
String str="";
String []temp;
while(startindex !=-1)
{
int endindex = pageSource.indexOf(".pdf",startindex);
str = pageSource.substring(startindex+8, endindex);
String delimiter = "%20";
String value="";
temp = str.split(delimiter) ;
for(int i=0;i<temp.length;i++)
{
value= value+temp[i]+" ";
}
list.add(value);
startindex = pageSource.indexOf("pdf_doc/",endindex);
}
}
catch(Exception ex)
{
Log.e("Error in HTML Reading",ex.getMessage());
}
}
return list;
}
@Override
protected void onPostExecute(ArrayList<String> result) {
// TODO Auto-generated method stub
// Here i want to start new UI that use the result of AsyncTask
}
}
在这段代码中,我通过AsyncTask从服务器读取数据,结果应该出现在新的UI中。这意味着我想从onPostExecute()开始新的活动。
或者,您可以通过调用当前名称来获取当前活动的上下文,例如 MyAsyncTaskActivity.this
@Override
protected void onPostExecute(Void result)
{
super.onPostExecute(result);
Intent intent = new Intent(MyAsyncTaskActivity.this, NextActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
MyAsyncTaskActivity.this.startActivity(intent);
}
getApplication ationContext()
不能从AsyncTasck调用。相反,您可以在构造函数中声明一个变量ctx,即getApplication ationContext()
。
@Override
protected void onPostExecute(Void result)
{
super.onPostExecute(result);
Intent intent = new Intent(ctx.this, NextActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
ctx.startActivity(intent);
}
试试这个,
@Override
protected void onPostExecute(Void result)
{
super.onPostExecute(result);
Intent intent = new Intent(MyAsyncTaskActivity.this, NextActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getApplicationContext().startActivity(intent);
}
问题内容: 美好的一天,我尝试从另一个开始新的活动。但是它总是崩溃。这是我的代码。这是ListView上的事件。 向清单清单添加了活动 错误消息是 所有以前的活动,我添加的活动都很好… StudentInfoActivity 问题答案: 代替 改成 例如,活动actOne = null;
当使用Intent启动一个新活动时,活动顶部的栏是否会自动提供后退按钮?我假设它是这样工作的,但没有看到它。如果它没有自动出现,需要什么来使它出现?
编辑...然而,我可以愉快地使用Monkey启动。下面的命令工作正常。好像我在adb shell am call中命名活动课的方式有问题,但我找不到。 谁能告诉我这个活动怎么叫?
问题内容: 我有一堂课,称为extends 。 现在,在我的父级活动中,我想“运行”此片段。 这是我的: 如何运行/启动片段?我希望我的方法可以触发。 问题答案: 有很多文档!您需要的一切已经在这里。 当然,您需要在活动布局中使用该容器。
问题内容: 我有一个输入活动。初始化活动后,将显示Android键盘。在用户集中输入之前,键盘如何保持隐藏状态? 问题答案: 我认为以下可能有效 我以前已经将它用于此类事情。
我有一个有很多编辑文本的活动。每当我加载该活动时,键盘就会出现并吃掉半个屏幕,这使得该活动看起来很糟糕。所以有什么方法可以隐藏键盘当我加载那个活动。