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

السؤال

نشر (معدل)

لدي مشكل  وهو عدم تحديث قيمة متغير من نوع 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
نشر
  بتاريخ On 3‏/1‏/2022 at 13:34 قال Med Foud:

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

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

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

أظهر المزيد  

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

حاول

myString = new String (stringValue);

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

  بتاريخ On 3‏/1‏/2022 at 13:34 قال Med Foud:

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

أظهر المزيد  

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

requestQueue.getCache().clear();

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

  • 1
نشر

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

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

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

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

  • 0
نشر
  بتاريخ On 3‏/1‏/2022 at 13:28 قال Wael Aljamal:

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

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

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

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

أظهر المزيد  

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

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

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

  • 0
نشر
  بتاريخ On 3‏/1‏/2022 at 13:41 قال Wael Aljamal:

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

أظهر المزيد  

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

 

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

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

private String myString = "initialValue";

 

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

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

  • 0
نشر
  بتاريخ On 3‏/1‏/2022 at 13:41 قال Wael Aljamal:

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

requestQueue.getCache().clear();

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

أظهر المزيد  

 

  بتاريخ On 3‏/1‏/2022 at 13:54 قال 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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...