Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/199.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
来自PHP的响应_Php_Android - Fatal编程技术网

来自PHP的响应

来自PHP的响应,php,android,Php,Android,当我的用户注册mysql时,我遇到了一个问题。 注册用户名和密码后,应用程序必须显示消息“User created successfully”。 但该应用程序没有显示任何消息,而是自动关闭 用户名已插入数据库。 即使我发送空数据,它也会给我同样的问题 这是我的PHP响应 $response["success"] = 1; $response["message"] = "Username Successfully Added!"; echo json_encode($response); 这是我

当我的用户注册mysql时,我遇到了一个问题。
注册用户名和密码后,应用程序必须显示消息“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库,它可以帮助解耦代码(消除或只是减少依赖性)
  • 将库添加到
    build.gradle
    文件后,您希望注册活动以侦听给定事件-EventBus将通知正在侦听通知的任何人。您可以通过调用
    EventBus.getDefault().register(this)
    在活动的
    onCreate()
    方法中注册实例,然后记住像这样在onDestroy中注销:
    EventBus.getDefault().unregister(this)
  • 下一步是创建一个POJO类(普通的旧Java对象),比如
    LoginCompletedEvent
    ,它应该包含您需要传递回UI的任何变量,或者任何正在监听后台操作(如发出HTTP请求)更新的人
  • 目前,如果您正在使用AsyncTask,在
    onPostExecute()
    方法中,您可以通过执行以下操作来通知您的活动登录操作或注册是否成功:
    EventBus.getDefault().post(新的LoginCompletedEvent(true,message))
    。这会将响应消息传递给订阅服务器,以便您可以相应地更新UI
  • 最后,在活动或片段(订户)中,您只需 添加具有以下签名的方法以获得通知并捕获传回的数据:

    public void onEvent(LoginCompletedEvent event){ //do something with the feedback here}
    
这就是使用EventBus提供的干净的发布者/订阅者设计模式完成任务所需的全部内容


我希望这个建议对你有帮助。如果您有任何进一步的需求或澄清问题,请让我知道,因为我很乐意提供帮助

我相信您的代码可以在这里使用事件(订阅者/发布设计模式)进行一点解耦。我会给你一些想法或指导,这样你就可以试一试了

  • 我目前最喜欢的方法是使用一个简单且经过良好测试的android库,它可以帮助解耦代码(消除或只是减少依赖性)
  • 将库添加到
    build.gradle
    文件后,您希望注册活动以侦听给定事件-EventBus将通知正在侦听通知的任何人。您可以通过调用
    EventBus.getDefault().register(this)
    在活动的
    onCreate()
    方法中注册实例,然后记住像这样在onDestroy中注销:
    EventBus.getDefault().unregister(this)
  • 下一步是创建一个POJO类(普通的旧Java对象),比如
    LoginCompletedEvent
    ,它应该包含您需要传递回UI的任何变量,或者任何正在监听后台操作(如发出HTTP请求)更新的人
  • 目前,如果您正在使用AsyncTask,在
    onPostExecute()
    方法中,您可以通过执行以下操作来通知您的活动登录操作或注册是否成功:
    EventBus.getDefault().post(新的LoginCompletedEvent(true,message))
    。这会将响应消息传递给订阅服务器,以便您可以相应地更新UI
  • 最后,在活动或片段(订户)中,您只需 添加具有以下签名的方法以获得通知并捕获传回的数据:

    public void onEvent(LoginCompletedEvent event){ //do something with the feedback here}
    
这就是使用EventBus提供的干净的发布者/订阅者设计模式完成任务所需的全部内容


我希望这个建议对你有帮助。如果您有任何进一步的需求或澄清问题,请让我知道,因为我很乐意提供帮助

请您发布logcat输出,以便我们能够获得与您的错误相关的更多信息。我有一个预感,但我想先看看logcat。你可以发布logcat的输出,这样我们就可以得到更多关于你的错误的信息。我有预感,但我想先看看logcat