Ağ değişikliklerini algılamak için bildirim dosyasımda BroadcastReceiver
ekledim. İşte, BroadcastReceiver
'u genişleten sınıf.statik hizmet nesnesi sıfır olur
public class NetworkConnectivityReceiver extends BroadcastReceiver {
static FirstService firstService;
public static void initServiceObj (FirstService serviceObj) {
if (serviceObj == null) {
CommonUtils.printLog("service obj is null.. returing");
return;
}
CommonUtils.printLog("setter called for serviceObj");
firstService = serviceObj;
}
public void onReceive(Context context, Intent intent) {
if (firstService == null) {
CommonUtils.printLog("service obj is null in onreceive.. returing");
return;
}
firstService.onNetworkChange();
}
}
Ben FirstService adlı bir hizmeti başladım ve bu servisin onCreate
I statik yöntem initServiceObj
FirstService
obj init için diyoruz. Nesnelerin ayarlandığı günlüklerden görüyorum. Ancak ağ 'da değiştiğinde, hizmet nesnesinin boş olacağını buldum. Statik değişken neden OnReceive'de null olur? Herhangi bir yardım takdir edilir.
Statik FirstService firstService; 'ne için ihtiyacınız var? Eğer hizmetinize bazı bilgileri iletmeniz gerekiyorsa, 'Intent'inizi ekstralar ile initleyin ve sadece 'startService' – pskink
@pskink'i arayın. Hizmet nesnesine ihtiyacım var, böylece ağ her değiştiğinde hizmet sınıfındaki bu nesne üzerindeki yöntemi çağırabilirim. Ve sanırım bunun statik olması gerekiyor çünkü "onReceive" denen nesne üzerinde kontrolüm yok. – shshnk
Servisinize bazı bilgileri iletmeniz gerekiyorsa, 'Intent' inizi extras ile başlatın ve 'startService' – pskink