在Android APK中获取身份验证令牌后,如何重定向到主页?

时间:2020-02-25 13:05:55

标签: android android-studio

获取身份验证令牌后,我们无法在首页中加载供稿。我们正在尝试通过在标头中发送auth令牌来获取供稿(文章)。问题是,Feed在第二次打开应用程序时正在加载,但不是第一次加载。我们的应用在安装时已在db中注册,并且我们具有登录api来获取令牌。但是在获得令牌后,Feed不会立即同时加载。相反,它仅在我们关闭应用程序并再次打开它之后才加载。我们如何使其在第一次访问时加载Feed?现在,我们第一次访问时得到空白页。

我们尝试的是:

在实用程序中。 Java

public static void getAdId(String token,Context context) {

        Thread thread = new Thread() {
            @Override
            public void run() {
                try {
                    AdvertisingIdClient.Info adInfo = AdvertisingIdClient.getAdvertisingIdInfo(context);
                    String advertisingId = adInfo != null ? adInfo.getId() : null;
                    Constant.MOBILE_ADID = advertisingId;
                    Log.i("TAG9", "ADID: " + advertisingId);

                    if (!Constant.MOBILE_ADID.isEmpty() && !token.isEmpty()) {
                        if (checkInternetConnection(context))
                            sendTokenToServer(context, Constant.MOBILE_ADID, token); // App registration
                        loginDeatialsToServer(context,Constant.MOBILE_ADID); // fetches the token

                    }
                } catch (IOException | GooglePlayServicesRepairableException | GooglePlayServicesNotAvailableException exception) {
                    exception.printStackTrace();
                }
            }
        };
        thread.start();
    }

客户端类:

 builder.addInterceptor(new Interceptor() {
                    Context context;
                    @Override
                    public okhttp3.Response intercept(Chain chain) throws IOException {

                        String token1= SharedPreference.getInstance(context).getLoginToken(context);
                        if (token1==null){
                            Utility.loginDeatialsToServer(context, Constant.MOBILE_ADID);
                        }
                        OkHttpClient client = new OkHttpClient();
                        Request request = new Request.Builder()
                                .url(apiurl)
                                .get()
                                .addHeader("Authorization",token1)
                                .build();

                        okhttp3.Response response = client.newCall(request).execute();

                        return(response);

                    }

                });

1 个答案:

答案 0 :(得分:0)

您使用的构建器不会再次创建,因此您必须为API响应创建新的构建器,尝试在获得令牌时或关闭时再次创建 builder 应用并再次打开,因为 builder 将再次创建,尝试打印日志,您会找到答案