۰ اینالو
بهبود کلاس ApiService
جامعه جاوا (اندروید) ایجاد شده در ۱۵ آذر ۱۴۰۱

سلام و عرض ادب خدمت مهندس شاهینی عزیز و دوست داشتنی، خیلی مخلصیم آقا.

به نظرم با توجه به اینکه سازنده کلاس ApiService فقط بار اول به شئ context نیاز داره، برای اینکه نخوایم هربار بیخودی شئ context رو پاس بدیم بهش، می‌تونیم کلاس Application رو extends کنیم و application context رو از اون بگیریم:

public class MyApplication extends Application
{
    private static Context appContext;
    public MyApplication()
    {
        this.appContext = this;
    }
    public static Context getContext()
    {
        return appContext;
    }
}

و متد سازنده کلاس ApiService این شکلی تغییر می‌کنه و دیگه نیازی به دریافت context به عنوان پارامتر ورودی نیست :

public ApiService(String requestTag) {
        this.requestTag=requestTag;
        if (requestQueue == null)
            requestQueue = Volley.newRequestQueue(MyApplication.getContext());
}

**نکته بسیار مهم اینکه باید حتما و حتما در فایل AndroidManifest خصوصیت name برای تگ application با مقدار زیر (نام کلاس) ست کنیم :**

".MyApplication"
...
...

جناب مهندس شاهینی عزیز اگر نکته یا مساله ای هست خوشحال میشم بفرمایید تا بیشتر از شما یاد بگیریم.