Android工作室预期课程或包

时间:2015-06-02 15:53:57

标签: java android android-asynctask

大家好我试图访问与asynctasks一起工作的类,但奇怪的是我得到了令人讨厌的错误,也许你可以帮助我,serverRequest.Storenaryste();上的错误显示这里是代码: .................................................. ..............................

uzsisakyti.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Global.naryste = trukme +" "+ "rad" +" "+ kaina.getText().toString();
                naris();
            }
        });


private void naris() {
        ServerRequests serverRequest = new ServerRequests(this);
        serverRequest.Storenaryste();
    }

ServerRequest类:

public class Storenaryste extends AsyncTask<Void, Void, Void> {

        @Override
        protected Void doInBackground(Void... params) {
            ArrayList<NameValuePair> dataToSend = new ArrayList<>();
            dataToSend.add(new BasicNameValuePair("pastas",Global.elpastas ));
            dataToSend.add(new BasicNameValuePair("slaptazodis",Global.slaptazodis ));
            dataToSend.add(new BasicNameValuePair("naryste",Global.naryste));

            HttpParams httpRequestParams = getHttpRequestParams();

            HttpClient client = new DefaultHttpClient(httpRequestParams);
            HttpPost post = new HttpPost(SERVER_ADDRESS
                    + "Naryste.php");

            try {
                post.setEntity(new UrlEncodedFormEntity(dataToSend));
                client.execute(post);
            } catch (Exception e) {
                e.printStackTrace();
            }

            return null;
        }

        private HttpParams getHttpRequestParams() {
            HttpParams httpRequestParams = new BasicHttpParams();
            HttpConnectionParams.setConnectionTimeout(httpRequestParams,
                    CONNECTION_TIMEOUT);
            HttpConnectionParams.setSoTimeout(httpRequestParams,
                    CONNECTION_TIMEOUT);
            return httpRequestParams;
        }

        @Override
        protected void onPostExecute(Void result) {
            super.onPostExecute(result);
            progressDialog.dismiss();
        }

    }

2 个答案:

答案 0 :(得分:1)

您正试图像这样开始AsyncTask

ServerRequests serverRequest = new ServerRequests(this);
serverRequest.Storenaryste();

这对我来说有点奇怪,你应该这样做:

new Storenaryste().execute();

哪个应该有用。

另请查看AsyncTask的文档以了解如何正确使用它:
http://developer.android.com/reference/android/os/AsyncTask.html

答案 1 :(得分:0)

将您的功能更改为

    private void naris() {
         new Storenaryste().execute();
    }