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