来自PHP的响应
当我的用户注册mysql时,我遇到了一个问题。来自PHP的响应,php,android,Php,Android,当我的用户注册mysql时,我遇到了一个问题。 注册用户名和密码后,应用程序必须显示消息“User created successfully”。 但该应用程序没有显示任何消息,而是自动关闭 用户名已插入数据库。 即使我发送空数据,它也会给我同样的问题 这是我的PHP响应 $response["success"] = 1; $response["message"] = "Username Successfully Added!"; echo json_encode($response); 这是我
注册用户名和密码后,应用程序必须显示消息“User created successfully”。
但该应用程序没有显示任何消息,而是自动关闭 用户名已插入数据库。
即使我发送空数据,它也会给我同样的问题 这是我的PHP响应
$response["success"] = 1;
$response["message"] = "Username Successfully Added!";
echo json_encode($response);
这是我的注册Java代码
Log.d("Login attempt", json.toString());
// json success element
success = json.getInt(TAG_SUCCESS);
if (success == 1) {
Log.d("Username Successfully Added!", json.toString());
finish();
return json.getString(TAG_MESSAGE);
}else{
Log.d("Login Failure!", json.getString(TAG_MESSAGE));
return json.getString(TAG_MESSAGE);
}
} catch (JSONException e) {
e.printStackTrace();
}
return null;
}
我想是因为 完成() 在你的代码中。一般来说 完成()
破坏活动。这就是你的应用程序关闭的原因。将其拆下并再次测试。希望这有帮助。我想这是因为 完成() 在你的代码中。一般来说 完成()
破坏活动。这就是你的应用程序关闭的原因。将其拆下并再次测试。希望这能有所帮助。我相信您的代码可以在这里使用事件(订阅者/发布设计模式)进行一些解耦。我会给你一些想法或指导,这样你就可以试一试了
- 我目前最喜欢的方法是使用一个简单且经过良好测试的android库,它可以帮助解耦代码(消除或只是减少依赖性)李>
- 将库添加到
文件后,您希望注册活动以侦听给定事件-EventBus将通知正在侦听通知的任何人。您可以通过调用build.gradle
在活动的EventBus.getDefault().register(this)
方法中注册实例,然后记住像这样在onDestroy中注销:onCreate()
EventBus.getDefault().unregister(this)
- 下一步是创建一个POJO类(普通的旧Java对象),比如
,它应该包含您需要传递回UI的任何变量,或者任何正在监听后台操作(如发出HTTP请求)更新的人LoginCompletedEvent
- 目前,如果您正在使用AsyncTask,在
方法中,您可以通过执行以下操作来通知您的活动登录操作或注册是否成功:onPostExecute()
。这会将响应消息传递给订阅服务器,以便您可以相应地更新UIEventBus.getDefault().post(新的LoginCompletedEvent(true,message))
- 最后,在活动或片段(订户)中,您只需
添加具有以下签名的方法以获得通知并捕获传回的数据:
public void onEvent(LoginCompletedEvent event){ //do something with the feedback here}
我希望这个建议对你有帮助。如果您有任何进一步的需求或澄清问题,请让我知道,因为我很乐意提供帮助 我相信您的代码可以在这里使用事件(订阅者/发布设计模式)进行一点解耦。我会给你一些想法或指导,这样你就可以试一试了
- 我目前最喜欢的方法是使用一个简单且经过良好测试的android库,它可以帮助解耦代码(消除或只是减少依赖性)李>
- 将库添加到
文件后,您希望注册活动以侦听给定事件-EventBus将通知正在侦听通知的任何人。您可以通过调用build.gradle
在活动的EventBus.getDefault().register(this)
方法中注册实例,然后记住像这样在onDestroy中注销:onCreate()
EventBus.getDefault().unregister(this)
- 下一步是创建一个POJO类(普通的旧Java对象),比如
,它应该包含您需要传递回UI的任何变量,或者任何正在监听后台操作(如发出HTTP请求)更新的人LoginCompletedEvent
- 目前,如果您正在使用AsyncTask,在
方法中,您可以通过执行以下操作来通知您的活动登录操作或注册是否成功:onPostExecute()
。这会将响应消息传递给订阅服务器,以便您可以相应地更新UIEventBus.getDefault().post(新的LoginCompletedEvent(true,message))
- 最后,在活动或片段(订户)中,您只需
添加具有以下签名的方法以获得通知并捕获传回的数据:
public void onEvent(LoginCompletedEvent event){ //do something with the feedback here}
我希望这个建议对你有帮助。如果您有任何进一步的需求或澄清问题,请让我知道,因为我很乐意提供帮助 请您发布logcat输出,以便我们能够获得与您的错误相关的更多信息。我有一个预感,但我想先看看logcat。你可以发布logcat的输出,这样我们就可以得到更多关于你的错误的信息。我有预感,但我想先看看logcat