اذهب إلى المحتوى
  • 0

عدم تحديث قيمة متغير من نوع String تم وضعه في السرفر بعد جلبه إلى تطبيق أندرويد

Mohamed Foudane

السؤال

لدي مشكل  وهو عدم تحديث قيمة متغير من نوع String تم وضعه في السرفر في كل مرة ادخل الى Activity.

كما تلاحظون في الكود اسفله انا اقوم باستدعاء قيمة string من السرفر ثم اعطيها ل myString. الى الأن كل شيء على ما يرام.

الان بعدما ادخل الى السرفر واغير قيمة String من هناك لا تتغير في التطبيق بعد اعادة تشغيل Method يبقى myString يأخذ القيمة الاولى التى اخذها بعد الدخول الى التطبيق لأول مرة 

private void getStringFromJson () {

        String url = "https://stringfromJson.json";

        RequestQueue requestQueue = Volley.newRequestQueue(getApplicationContext());

        JsonObjectRequest jsonObjectRequest = new JsonObjectRequest (Request.Method.GET, url, null, new Response.Listener<JSONObject>() {

            @Override
            public void onResponse(JSONObject response) {

                try {
                    JSONObject object = response.getJSONObject("StringJsonObject");

                    String stringValue = object.getString("StringJsonValue");
               
                    myString = stringValue;


                } catch (JSONException e) {
                    e.printStackTrace();
                }

            }
        }, new Response.ErrorListener() {

            @Override
            public void onErrorResponse(VolleyError error) {
                // TODO: Handle error

            }
        });

        requestQueue.add(jsonObjectRequest);
    }

 

تم التعديل في بواسطة Wael Aljamal
توضيح السؤال
رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 1
بتاريخ 23 دقائق مضت قال Med Foud:

لا هذا الموقع مجرد مثال فقط 

نعم لدي صلاحية لتعديل النص في الموقع المشكل ليس في الموقع. انما المشكل في الكود جافا.

لأنما عندما Clear All Data في الهاتف ثم اعيد تشغيله يأخذ القيمة الجديدة وتبقى هذه القيمة ثابتة مرة اخرى حتى وان غيرتها في الموقع  الى ان اقوم من جديد ب Clear All Data 

هل يمكنك إضافة جزء الكود مكات تعريف myString و كيف تقوم باستدعاء getStringFromJson

حاول

myString = new String (stringValue);

ربما سبب المشكلة هو عمل تخزين مؤقت caching يحفظ القيمة السابقة لناتج الاتصال ولا يعمل تحديث.

بتاريخ 23 دقائق مضت قال Med Foud:

لأنما عندما Clear All Data في الهاتف ثم اعيد تشغيله يأخذ القيمة الجديدة وتبقى هذه القيمة ثابتة مرة اخرى حتى وان غيرتها في الموقع  الى ان اقوم من جديد ب Clear All Data 

بعد استلام الطلبية ضع في الدالة في أول سطر منها التعليمة التالية

requestQueue.getCache().clear();

لنحذف ذاكرة التخزين المؤقت من Volley @Med Foud

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 1

أنت تتصل على الرابط التالي

String url = "https://stringfromJson.json";
                     ^^^^^^^^^^^^^^^^^^^^^^

هل لديك صلاحية لتعديل النص في ذلك الموقع؟ حاولت طلب الرابط وهو غير متوفر..

وأرجو إطلاعي أين تحاول تعديل قيمة السلسلة النصية، لأن الشيفرة لا أعتقد فيها مشكلة.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 1 دقيقة مضت قال Wael Aljamal:

أنت تتصل على الرابط التالي


String url = "https://stringfromJson.json";
                     ^^^^^^^^^^^^^^^^^^^^^^

هل لديك صلاحية لتعديل النص في ذلك الموقع؟ حاولت طلب الرابط وهو غير متوفر..

وأرجو إطلاعي أين تحاول تعديل قيمة السلسلة النصية، لأن الشيفرة لا أعتقد فيها مشكلة.

لا هذا الموقع مجرد مثال فقط 

نعم لدي صلاحية لتعديل النص في الموقع المشكل ليس في الموقع. انما المشكل في الكود جافا.

لأنما عندما Clear All Data في الهاتف ثم اعيد تشغيله يأخذ القيمة الجديدة وتبقى هذه القيمة ثابتة مرة اخرى حتى وان غيرتها في الموقع  الى ان اقوم من جديد ب Clear All Data 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 8 دقائق مضت قال Wael Aljamal:

ربما سبب المشكلة هو عمل تخزين مؤقت caching يحفظ القيمة السابقة لناتج الاتصال ولا يعمل تحديث.

نعم اعتقد ان هذه هي المشكلة بالتحديد...

 

بالنسبة لتعريف myString :

عرفته على هذا الشكل :

private String myString = "initialValue";

 

لكن هذه القيمة تتغير الى stringValue بعد تشغيل getStringFromJson () .

ثم لا تتغير بعد ذلك 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 23 دقائق مضت قال Wael Aljamal:

بعد استلام الطلبية ضع في الدالة في أول سطر منها التعليمة التالية


requestQueue.getCache().clear();

لنحذف ذاكرة التخزين المؤقت من Volley @Med Foud

 

بتاريخ 9 دقائق مضت قال Med Foud:

ثم لا تتغير بعد ذلك 

جرب هذه

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...