首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >登录失败,但仅在Samsung中

登录失败,但仅在Samsung中
EN

Stack Overflow用户
提问于 2016-10-13 19:21:50
回答 1查看 64关注 0票数 0

在我的应用程序中,我有一个登录过程,一旦你登录,应用程序就会调用服务器来获取特定的数据:

代码语言:javascript
复制
Call<JsonObject> peticion= RetrofitClient.getRetrofitClient(InicioSesionGibActivity.this).login(imei, idCliente, user, encriptedPass);
peticion.enqueue(new Callback<JsonObject>() {
@Override
public void onResponse(final Response<JsonObject> response, Retrofit retrofit) {

        String respoString=response.body().toString();
    if(response.isSuccess()){

        settings.edit().putBoolean("logueado", true).apply();

        Call<JsonPrimitive> peticion= RetrofitClient.getRetrofitClient(InicioSesionGibActivity.this).obtenerCodOrg(settings.getString("imei", ""), settings.getString("idCliente", ""));
        peticion.enqueue(new Callback<JsonPrimitive>() {
            @Override
            public void onResponse(Response<JsonPrimitive> response2, Retrofit retrofit) {
                if (response2.isSuccess()) {
                    codOrg = response2.body().getAsLong();
                    settings.edit().putLong("codorg", codOrg).apply();
                    dropTables();
                    obtenerEntidades();
                }else{
                    //The execution gets here
                    Message msg=new Message();
                    msg.what=1;
                    loginHandler.sendMessage(msg);
                    AlertDialog.Builder aDialog=new AlertDialog.Builder(InicioSesionGibActivity.this);
                    aDialog.setTitle(getString(R.string.error));
                    aDialog.setMessage(getString(R.string.unknownerror));
                    aDialog.setPositiveButton(getString(R.string.si), new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            dialog.dismiss();
                        }
                    });
                    aDialog.show();
                }
            }

            @Override
            public void onFailure(Throwable t) {

                settings.edit().putBoolean("logueado", false).apply();
                Message msg=new Message();
                msg.what=1;
                loginHandler.sendMessage(msg);
                AlertDialog.Builder aDialog=new AlertDialog.Builder(InicioSesionGibActivity.this);
                aDialog.setTitle(getString(R.string.error));
                aDialog.setMessage(getString(R.string.neterror));
                aDialog.setPositiveButton(getString(R.string.si), new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        dialog.dismiss();
                    }
                });
                aDialog.show();

            }
        });

    }else{

        final AlertDialog.Builder builder=new AlertDialog.Builder(InicioSesionGibActivity.this);
        builder.setTitle(getString(R.string.error));
        builder.setMessage(getString(R.string.loginerror));
        builder.setPositiveButton(getString(R.string.accept), new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                dialog.dismiss();
                Message msg=new Message();
                msg.what=1;
                loginHandler.sendMessage(msg);
                editTextUsuario.setText("");
                editTextPassword.setText("");

            }
        });
        builder.create().show();
    }

}

@Override
public void onFailure(Throwable t) {
    Message msg=new Message();
    msg.what=1;
    loginHandler.sendMessage(msg);
    final AlertDialog.Builder builder=new AlertDialog.Builder(InicioSesionGibActivity.this);
    builder.setTitle(getString(R.string.error));
    builder.setMessage(getString(R.string.loginerror));
    builder.setPositiveButton(getString(R.string.accept), new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            dialog.dismiss();
        }

    });
    builder.create().show();


}
});

在我老板的一部三星S7手机(不是爆炸的那部)上,我的所有devices...except都运行正常。如果他从APK执行,就会发生这种情况。但是,这是奇怪的部分,如果我拿到手机,从Android Studio运行应用程序,执行起来很完美,我得到的数据也很好。

这让我抓狂,因为它很难调试。

有人遇到过这个问题吗?

如果您需要更多数据或澄清,请提问。

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2016-10-14 08:47:50

可能是因为它的速度很快。当您将数据保存到共享首选项时,是否会立即将其读回?您正在使用apply(),它将把它存储在一个异步后台线程中,如果您尝试立即读回它,它可能不会立即出现。

您可能希望使用commit(),它将其数据立即写入当前线程中的持久存储中,并且在提交之前不会继续执行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40019600

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档