0

当我尝试通过单击按钮执行 AsyncTask 时,我的应用程序说该任务已经启动。我不会在 onCreate 或 onResume 或类似的任何地方执行任务。可以在创建活动时启动任务而无需我以编程方式执行它吗?

    // Login button
    Button loginButton = (Button) findViewById(R.id.loginBtn);
    loginButton.setOnClickListener(new Button.OnClickListener() 
    {
        public void onClick(View v) 
        {                
            loginTask.execute("");
        }
    });


// Background login thread
private AsyncTask<Object, String, String> loginTask = new AsyncTask<Object, String, String>(){

    @Override
    protected String doInBackground(Object... arg0) 
    {
        Log.v(TAG, "Login task started");
        LoginManager lm = new LoginManager();
        String username = emailText.getText().toString();
        String password = passwordText.getText().toString();
        loginBundle = new Bundle();
        loginBundle.putString(Constants.LOGIN_HANDLER_ID, lm.login(username, password));
        loginMessage = Message.obtain(null, 0);
        loginMessage.setData(loginBundle);
        loginHandler.sendMessage(loginMessage);
        return "";
    }

};

这是我调用执行的唯一地方,它是我在 onCreate() 方法中创建的按钮。执行任务时,我收到任务已启动错误。

我想也许我没有正确取消线程,所以我重新启动了我的 Motrola Xoom。Xoom 启动后,我运行了该应用程序,但仍然出现此错误。我能做些什么?该应用程序使用的是 Android SDK 8 ......我在摩托罗拉 Xoom 上运行。

4

1 回答 1

2

像这样调用你的 AsyncTask

new LoginTask().execute(""); 

在哪里

private class LoginTask extends
    AsyncTask<Object,String, String> {
.....

}
于 2012-08-29T18:21:54.850 回答