[英]start Activity from Asynctask
我知道这个问题已经被回答了好几次了,我已经阅读了大多数,但是我不明白为什么他们对我不起作用。
我正在构建某种Webcrawler,因此我有一个Asynctask,可将HTML代码解析为一个类中所需的变量。
我知道要启动Asynctask vie OnClick,这不是问题,但我想在Asynctask解析HTML代码后启动其他Activity。
由于它是一个Asynctask,所以我认为最好在它的OnPostExecute中启动Actitivty。
我的代码非常简单和基本,但是我不知道为什么会有问题。
@Override
protected void onPostExecute(String result){
if(dialog.isShowing()){
dialog.dismiss();
}
startActivity(new Intent(context, DetailView.class));
}
上下文是一个变量,在其中我具有MainActivity的上下文,并且在Asynctask中创建Toast的不同点上对我来说工作正常。
DetailView.class是我要启动的Actitivity,可以从MainActivity正常工作,但不能在此位置工作。
问题是编译器告诉我他期望android.app.Activity,而实际参数是“ new Intent(context,DetailView.class)”
对于如此简单且已经经常回答的问题,我感到抱歉,但我不知道如何使它正常工作。
谢谢您的回答。
完美的黑带,我的外部类没有扩展Activity,这就是解决方案。 谢谢
您无法在后台线程上更新UI。 显示吐司和对话框是更新UI的一种方式。
您可以在方法doInBackground()
发布publishProgress(...)
,并在onProgressUpdate()
更新UI。
问题解决了:
context.startActivity(new Intent(context, DetailView.class));
现在可以使用,但是我不知道为什么。
有很多答案,但是我将其用于我的应用程序:
Intent intent = new Intent(mContext, mainmenu.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
mContext.startActivity(intent);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.