请教使用AsyncTask

使用AsyncTask

我有一个应用程序,当我的用户在输入他们的详细信息后点击这个按钮登录时,它会与android.os.NetworkOnMainThreadException崩溃-我发现这是因为我在主线程上执行一个网络操作,并且为了解决我需要使用AsyncTask的问题,我被语法卡住了。

以下是单击按钮后的代码,调用函数连接,然后将json解析为sqlitdb。

// Login button Click Event
    btnLogin.setOnClickListener(new View.OnClickListener() {

        public void onClick(View view) {
            String email = inputEmail.getText().toString();
            String password = inputPassword.getText().toString();
            UserFunctions userFunction = new UserFunctions();
            JSONObject json = userFunction.loginUser(email, password);

            // check for login response
            try {
                if (json.getString(KEY_SUCCESS) != null) {
                    loginErrorMsg.setText("");
                    String res = json.getString(KEY_SUCCESS); 
                    if(Integer.parseInt(res) == 1){
                        // user successfully logged in
                        // Store user details in SQLite Database
                        DatabaseHandler db = new DatabaseHandler(getApplicationContext());
                        JSONObject json_user = json.getJSONObject("user");

                        // Clear all previous data in database
                        userFunction.logoutUser(getApplicationContext());
                        db.addUser(json_user.getString(KEY_NAME), json_user.getString(KEY_EMAIL), json.getString(KEY_UID),
                         json_user.getString(KEY_CREATED_AT));                        

                        // Launch Dashboard Screen
                        Intent dashboard = new Intent(getApplicationContext(), DashboardActivity.class);

                        // Close all views before launching Dashboard
                        dashboard.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                        startActivity(dashboard);
   
            }
        }
    });

我如何将它更改为正确的类?我没有传递URL等等,我认为应该是这样的,但我真的很难把语法弄对。



小怪兽爱吃肉
浏览 220回答 3
3回答

BIG阳

不管怎么说,只是我的两分钱super.onPostExecute(...),super.onProgressUpdate(...)和super.onPreExecute()..我见过许多例子,其中Ppls在AsyncTask的实现中调用了它们.我有个问题:为什么.所有这些方法在基类/超类中都是空的.

呼唤远方

在公共类TalkToServer扩展AsyncTask<void,void>时仍然有一个错误-本地类TalkToServer的非法修饰符;只允许抽象或最终修改
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Android