从doInBackground()启动活动时出错

时间:2016-03-02 07:03:01

标签: android android-asynctask

我是Android开发的新手。 我想执行一些数据库操作然后,想要开始一个新的活动。我在下面编写了AsyncTask代码。

我在startActivity调用时遇到错误。请帮帮我。

private class AsyncTaskRunner extends AsyncTask<String, String, String> {

    Context mainContext;

    public AsyncTaskRunner(Context mainContext){
        this.mainContext=mainContext;
    }

    @Override
    protected String doInBackground(String... params) {
        publishProgress("Sleeping..."); // Calls onProgressUpdate()
        try {
            sql.updateRelations();
        } catch (Exception e) {
            e.printStackTrace();
       }
        return "";
    }
    @Override
    protected void onPostExecute(String result) {
        InitActivity.progress.dismiss();
        Intent intent = new Intent(mainContext, MainActivity.class);
        if(mainContext!=null){
            mainContext.startActivity(intent);
            ((Activity)mainContext).finish();
        }
    }
    @Override
    protected void onPreExecute() {
        InitActivity.progress.show();
    }
    @Override
    protected void onProgressUpdate(String... text) {
    }
}

1 个答案:

答案 0 :(得分:0)

如果您的异步任务是您活动的内部类,请执行以下操作

npm@2

否则,如果您的异步任务是一个单独的类,请尝试以下

babelify@6

如果它不起作用,请发布您的日志,以便我可以提供更好的帮助。