在 Android 中从 AsyncTask (PostExecute) 启动 Activity

Start an Activiy from an AsyncTask (PostExecute) in Android

我读了很多关于它的问题,有人解决了我的问题。我有一个 AsyncTask,其中必须启动一个新的 activity。代码如下:

public class UpdateCatalog extends AsyncTask <Void,Integer,Void> {

private Context context;
private LoadActivity activity;

public UpdateCatalog(LoadActivity activity) {
    super();
    this.activity = activity;
    this.context = this.activity.getApplicationContext();
} 
   .
   .
   .

@Override
protected void onPostExecute(final Void result) {
    // Update your views here
    LoadActivity.progressStatus.setVisibility(View.GONE);
    context.startActivity(new Intent(context, DownloadImages.class).addFlags(Intent.FLAG_ACTIVITY_NEW_TASK));
}
}

对这个 AsincTask 的调用在启动 AsincTask 的 Activity 中,如下所示:

   public class LoadActivity extends AppCompatActivity {

public static TextView txtStatus;
public static ProgressBar progressStatus;


@Override
protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_load);
    txtStatus  = (TextView) findViewById(R.id.progressStatus);
    progressStatus = (ProgressBar) findViewById(R.id.progressBar);
    if(CheckCatalog()){
        ShowUpdateDialog();
    }
    else
        new UpdateCatalog(this).execute();
}

错误如下:

    FATAL EXCEPTION: main
android.content.ActivityNotFoundException: Unable to find explicit activity class {es.aplicaciones.alvaro.entrelazadas/es.aplicaciones.alvaro.entrelazadas.DownloadImages};

DownloadImages.class 已经创建。所以我认为这不是问题。我尝试使用其他方法将上下文作为参数传递,但它仍然无法正常工作。 你能帮帮我吗?

记住,您必须在 AndroidManifest.xml 文件中声明每个 activity :)

<activity android:name=".DownloadImages" />

检查您的清单文件。 如果您的 DownloadImages class 在清单文件中声明的 "base" 包中,则添加 activity 和 .ClassName

<application> 
....
     <activity android:name=".DownloadImages" />
</application>

其他 写下 DownloadImages class.

的完整路径
 <application> 
    ....
         <activity android:name="com.example.path.DownloadImages" />
 </application>