java - Android如何在第一次从数据获取信息时转到其他 Activity

标签 java android api onclick background-process

这是我的注册函数。

如果我从服务器获得正确的反馈,它会将 isCreated 更改为 true boolean 值并移至下一个 Activity 。

问题是 boolean 值无法编辑,需要再次单击按钮才能转到下一个 Activity(只有单击按钮后 boolean 值才能设置为 true)?

 public void onClick(View view) {

    switch(view.getId()){
        case R.id.register:
        if(!validate())
                Toast.makeText(getBaseContext(), "Enter user information!", Toast.LENGTH_LONG).show();
            // call AsynTask to perform network operation on separate thread
            new HttpAsyncTask().execute(herokuServer);
            if (isCreated)startActivity(new Intent(this, Preference.class));


            break;
    }

private class HttpAsyncTask extends AsyncTask<String, Void, String> {
    @Override
    protected String doInBackground(String... urls) {

        newAccount = new userAccount();
        newAccount.setPassword(password.getText().toString());
        newAccount.setEmail(email.getText().toString());

        return POST(urls[0],newAccount);
    }
    // onPostExecute displays the results of the AsyncTask.
    @Override
    protected void onPostExecute(String result) {
        if (result.equals("Welcome to Opshun!"))isCreated = true;
        //if (!result.equals("Welcome to Opshun!")) result = "Please use your email to register!";
        Toast.makeText(getBaseContext(), result, Toast.LENGTH_LONG).show();
    }
}

有什么办法可以解决吗?

最佳答案

这就是AsyncTask背后的全部要点;它将长时间运行的操作从 UI Thread 中移出。通过这样做,UI Thread 可以“继续”执行,而由 AsyncTask 启动的 Thread 则执行繁重的工作。值类操作。

一种可能的解决方案是在 SharedPreferences 中存储一个 boolean 值,以确定 AsyncTask 是否已运行。

如果您想要在AsyncTask完成时收到通知,则需要使用接口(interface)创建委托(delegate)。 This answer 展示了如何做到这一点。

关于java - Android如何在第一次从数据获取信息时转到其他 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29980804/

相关文章:

java - 使用异常或者使用多个try catch java

java - 如何将war文件和自定义配置添加到wildfly docker镜像?

java - 如何组合相互依赖的 Observables 并获得一个包含每个值的对象?

xml - 哪种 XML 结构最适合全能 API?

c# - 使用 HttpClient 将 Content-Type 设置为 "application/json"并将对象添加到正文

java飞行记录器连接错误

android - Here Maps 安卓应用

java - 如何忽略 Git pull 中的库项目?

android - 如何仅在android中获取用户创建日期

java - 配置 XMLConstants.html#FEATURE_SECURE_PROCESSING 时出现 XSLT 和 FOP 问题