Sobes.tech
Junior — Middle

Kokio regioninio konteksto yra susijęs Singleton modelis?

sobes.tech AI

Atsakymas iš AI

„Android“ dažnai „Singleton“ modelis yra susijęs su programos kontekstu (Application Context). Tai yra todėl, kad „Singleton“ turi turėti gyvenimo ciklą, atitinkantį visos programos gyvenimo ciklą, siekiant išvengti atminties nutekėjimo ir netinkamo išteklių naudojimo.

Naudojant „Application Context“, užtikrinama, kad „Singleton“ nebus laikoma nuoroda į „Activity“ ar kitą trumpalaikį komponentą, kas galėtų sukelti nutekėjimus.

Pavyzdys, kaip sukurti „Singleton“ naudojant „Application Context“:

public class MySingleton {
    private static MySingleton instance;
    private Context context;

    private MySingleton(Context context) {
        // Naudoti „Application Context“, kad išvengtumėte nutekėjimų
        this.context = context.getApplicationContext();
    }

    public static synchronized MySingleton getInstance(Context context) {
        if (instance == null) {
            instance = new MySingleton(context);
        }
        return instance;
    }
}