Remote service android dan singleton sinfini yaratish

Uzoq xizmatni yaratdim. Ushbu uzoq xizmatda singleton ob'ektini yarataman. Ushbu ob'ekt yaratilgandan so'ng, uning axlat yig'ilishigacha qolishi kerak. Keling, bu obyektni singleton sinfidan ichkariga kirganimda, to'g'ri ob'ektni olaman. Lekin men uni tashqi sinfga kirsam, singleton ob'ekti bo'sh va mening sinfim yana yaratiladi. Barcha boshlang'ich ob'ektni yo'qotmoqdaman.

Mening singletonim quyidagicha

class myFactory {

    private static myFactory instance;

    private myFactory(){
    }

    public static myFactory getInstance(){
        if(instance == null) {
            instance = new myFactory();
        }
        return instance;
    }
} 

Ob'ektni axlat yig'ib oladimi-yo'qmi tekshirish uchun singleton sinfida yakunlashni rad etishga harakat qildim, lekin bu vazifaga kelmaydi.

Outside the connection factory object where ever i access this singleton object i am getting null and therefore new object is created > what am i doing wrong?

0
Sizga null bo'lasiz deb aytgan kimdir? null bo'lolmaysiz. Ya'ni siz yangi misolni olasizmi?
qo'shib qo'ydi muallif Sherif elKhatib, manba

1 javoblar

Bu Singleton, men nima uchun ishlamasligini tushunmayapman. Ammo, siz Singletonni IPC-kontekstida foydalanishga harakat qilyapsiz, deb o'ylayman, bu muammo bo'lar edi (chunki uzoq xizmat har doim ham yangi mavzudir).

Savol: Nima uchun Singleton kerak ... yaxshi echim yo'qmi? Sizning butun xizmat tuzilmangizni bilmayman, lekin xizmatga ulanish vaqtida fabrikaning namunasini olish mantiqiy.

Qo'shimcha ma'lumot bera olsangiz, yordam berishi mumkin

0
qo'shib qo'ydi
Xizmat bir xil ish zarrasida ishlaydi? Agar bo'lmasa, har bir mavzu o'z klassifikatori mavjudligi muammosi bor, shuning uchun singletonlar ishlamaydi. Ehtimol, zavodni xizmatdan olishni o'ylashingiz kerak, bu odatda eng xavfsiz yondashuvdir (chunki siz ANRni oldini olish uchun har xil sohalarda ishlaysiz) - Bog'lanish xizmatlari uchun ba'zi maslahatlar
qo'shib qo'ydi muallif Philipp Wendt, manba
To'g'ri tushunsam, server bilan bir xil ish zarrachasida/protseduraga ega bo'lgan BroadcastReceiver yaratmoqchisiz. Xo'sh, nima bo'ldi? Yodda tutingki, BroadcastReceiver keyinroq BroadcastReceiver-ni ishga tushiradigan vazifadan ko'ra boshqa bir ishda ishlaydi va siz murakkab Ob'ektlarni jarayonlarni o'zaro almashtirish va ularni bezovta qilmasdan o'zgartira olmaysiz. Ehtimol, to'g'ri tushunmadim (men hech qachon BroadcastReceiver bilan ishlamaganman), ammo to'g'ri tushunsam, AIDLga murojaat qilishingiz kerak (agar u siz foydalanmasangiz, og'riq bo'lsa-da, uni qanday ishlatishni bilsangiz yaxshi bo'ladi)
qo'shib qo'ydi muallif Philipp Wendt, manba
Sizga tezda javob berish uchun Philippga minnatdorchilik bildiraman, Singleton bcos kerak. Ba'zi sinflarga kira oladigan narsalarni yarataman. Bu zavod naqsh ob'ekti turi. Men yangi narsalar faqatgina ushbu ob'ektlar nobud bo'lgandagina yaratilishi kerak edi ... Zavod ob'ekti ishchi sinflarining ayrimlari tomonidan ishlatiladigan faoliyatlar bilan foydalanilmaydi.
qo'shib qo'ydi muallif Shrikanth Kalluraya, manba
strukturaga o'xshash xizmat boshlanadi va xizmat zavod ob'ektini yaratadi. zavod obyektining a'zosi tarmoq qatlami va boshqalar kabi pastki qatlamlar tomonidan qo'llaniladi.
qo'shib qo'ydi muallif Shrikanth Kalluraya, manba
Xizmat turli jarayonlarda ishlaydi. Phillipp Ehtimol, siz aytgan narsalar to'g'ri yo'nalishda ... Manifestda aniqlangan translyatsiya qabul qilgichida xizmat tomonidan yaratilgan qo'shiqqa kirishdingiz. Sinab ko'rmoqchi bo'lgan narsa - bu xizmat bilan bir xil jarayonda radiostantsiyani olishdir. Turli jarayonlarda xizmat qilish uchun android-i qo'ydim: process = ": remote". Agar qabul qilgichga o'xshash narsani bergan bo'lsam, u xizmat bilan bir xil jarayonda bo'ladi
qo'shib qo'ydi muallif Shrikanth Kalluraya, manba