无法从 onPostExecute 开始 activity

Can't start activity from onPostExecute

我有一个 AsyncTask,我可以在其中向服务器发出请求并下载一些数据。根据收到的数据,我在 onPostExecute().

中开始 Activity AActivity B

问题是这不起作用。没有错误,只是 activity 没有启动。似乎根本没有在那里执行代码。

private class LoadingAsyncTask extends AsyncTask<Boolean, Void, Boolean> {

    protected Void doInBackground(Boolean... params) {
        if (InternetConnection.isConnected(ActivityLoading.this)) {
            .....load data
        } else {
            Toast.makeText(ActivityLoading.this, getString(R.string.no_internet_connection), Toast.LENGTH_SHORT).show();
        }

        isDone = true;
        return isDone;            
    }


    protected void onPostExecute(Void isDone) {
        super.onPostExecute(isDone);
        //if work is done
        if (isDone) {
            if (dwnlData.equals("success")) {
            getApplicationContext().startActivity(new Intent(ActivityLoading.this, ActivityNavigation.class));
        } else {
            getApplicationContext().startActivity(new Intent(ActivityLoading.this, ActivityAuthorization.class));
        }
    }
}

我在 onCreate 中调用 AsyncTask:

public class ActivityLoading extends ActionBarActivity {
static boolean isDone = false;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_loading);

    new LoadingAsyncTask().execute();

}

您是否尝试过将 isDone 设为布尔值?

编辑 - 您可以将 doInBackground return 设为空,并停止在 onPostExecute 中使用参数。

将参数数据类型 void 更改为 boolean

protected void onPostExecute(boolean isDone) {
    super.onPostExecute(isDone);
    //if work is done
    if (isDone) {
        if (dwnlData.equals("success")) {
        getApplicationContext().startActivity(new Intent(ActivityLoading.this, ActivityNavigation.class));
    } else {
        getApplicationContext().startActivity(new Intent(ActivityLoading.this, ActivityAuthorization.class));
    }
}

我建议在这些 if{} 块中使用 Log.d() 或 Toast() 来验证您的条件是否为真