Java 如何停用应用程序中的注册帐户

Java 如何停用应用程序中的注册帐户,java,android,Java,Android,我正在创建一个应用程序,我必须在其中创建停用代码这是我在android studio中的活动代码 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); dbHelper = new DatabaseHelper(context); context = getApplicationContext();

我正在创建一个应用程序,我必须在其中创建停用代码这是我在android studio中的活动代码

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        dbHelper = new DatabaseHelper(context);
        context = getApplicationContext();
        setContentView(R.layout.manage_account);
        TextView deleteAccount = (TextView) findViewById(R.id.delete_account);
        deleteAccount.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View V) {
                AlertDialog.Builder alertDialog = new AlertDialog.Builder(ManageAccount.this);
                alertDialog.setTitle("Confirm Deactivate");
                alertDialog.setMessage("Are you really want to deactivate your account?");
                alertDialog.setPositiveButton("YES", new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int which) {

                       userMO.setRingeeUserId(userMO.getRingeeUserId());
                        userMO.setIsDelete(1);
                        new AsyncTask<Void, Void, String>() {
                            protected String doInBackground(Void... arg0) {
                                return userDelegate.updateUser(userMO, context);

                            }

                        }.execute(null, null, null);


                        Toast.makeText(getApplicationContext(), "successfully deactivated", Toast.LENGTH_SHORT).show();
                    }
                });

                alertDialog.setNegativeButton("NO", new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int which) {
                        dialog.cancel();
                    }
                });
                // Showing Alert Message
                alertDialog.show();
            }

        });

    }


}
这是我在服务层的updae用户

//update user added here
    @Override
    @Transactional(propagation = Propagation.REQUIRES_NEW)
    public void updateUser(UserBO userBO) throws UserServiceException
    {
        try {
            UserDO userDO = mapper.mapUserBOToDO(userBO, new UserDO());
            userDAOImpl.updateUser(userDO);
            userBO.setRingeeUserId(userDO.getRingeeUserId());
            log.debug("---------User Details Update Successfully ------------" + userBO.getRingeeUserId());
        } catch (UserDataException uDataExp) {
            throw new UserServiceException("User Updation failed for user id -"+ userBO.getRingeeUserId(), uDataExp);
        }
这是我的DAOImpl更新程序

// update user added here
    @Override
    public void updateUser(UserDO userDO) throws UserDataException {
        // TODO Auto-generated method stub
        JdbcTemplate jdbcTemplate = this.getJdbctemplate();
        long ringeeUserId=userDO.getRingeeUserId();

        try {
            int isUserUpdated = jdbcTemplate.update(UPDATE_USER, new Object[] { userDO.getUserName(), userDO.getRegistrationId(), userDO.getImeiCode(), userDO.getDeleted(), ringeeUserId });
        if (isUserUpdated == 0)
                throw new UserDataException("User Updation Failed"+userDO.getRingeeUserId());
        } catch (DataAccessException dExp) {
            throw new UserDataException("error while updating user details for user id" + userDO.getRingeeUserId(), dExp);
        }
    }

当我在应用程序中单击deactivate(是按钮)时,它显示“successfully deactivated”,但表中的值未更新,我在jboss中遇到错误“用户更新失败

在注册时,您必须通过SharedPreference将凭据保存在应用程序中。请在需要2停用注册时将其清除。如果不查看您的
updateUser
方法,则很难进行调试。此外,
AsyncTask
的返回值将被忽略。还有一个提示:如果您只需要在单击按钮时关闭
对话框
,请传递
null
,而不是
对话框界面。OnClickListener
,这会减少样板代码的数量。感谢您的回复我添加了更新用户代码您的服务器响应是什么?你的http状态码是什么?我强烈建议你让类似的东西来做所有的网络工作。它有自己的内置网络层、响应和错误管理,这使得你的应用程序不太容易与网络相关bugs@AmarbirSingh顺便说一句,你的建议(很可能)不正确,因为如果你只在本地清除用户数据,服务器仍然会假定该用户有一个活动会话,并且很多事情可能会出错。这就是为什么只有在收到后端的确认后才应该注销用户
//update user added here
    @Override
    @Transactional(propagation = Propagation.REQUIRES_NEW)
    public void updateUser(UserBO userBO) throws UserServiceException
    {
        try {
            UserDO userDO = mapper.mapUserBOToDO(userBO, new UserDO());
            userDAOImpl.updateUser(userDO);
            userBO.setRingeeUserId(userDO.getRingeeUserId());
            log.debug("---------User Details Update Successfully ------------" + userBO.getRingeeUserId());
        } catch (UserDataException uDataExp) {
            throw new UserServiceException("User Updation failed for user id -"+ userBO.getRingeeUserId(), uDataExp);
        }
// update user added here
    @Override
    public void updateUser(UserDO userDO) throws UserDataException {
        // TODO Auto-generated method stub
        JdbcTemplate jdbcTemplate = this.getJdbctemplate();
        long ringeeUserId=userDO.getRingeeUserId();

        try {
            int isUserUpdated = jdbcTemplate.update(UPDATE_USER, new Object[] { userDO.getUserName(), userDO.getRegistrationId(), userDO.getImeiCode(), userDO.getDeleted(), ringeeUserId });
        if (isUserUpdated == 0)
                throw new UserDataException("User Updation Failed"+userDO.getRingeeUserId());
        } catch (DataAccessException dExp) {
            throw new UserDataException("error while updating user details for user id" + userDO.getRingeeUserId(), dExp);
        }
    }