2016-03-27 16 views
1

Oluşturduğum bir nesnenin, onHandleIntent yönteminde null olması ve neden veya nasıl çözüleceğini bilmediğim bir durum var.IntentService, onu oluşturduktan sonra kaydetmiyor

MyActivity

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     // the bluetooth is mentioned in case you know a way to use it with out transfer it from the activity 
     BluetoothManager _bluetooth_manager = (BluetoothManager)getSystemService(Context.BLUETOOTH_SERVICE); 
     myService = new MyService(new MyClass(_bluetooth_manager.getAdapter())); 

     Intent intent = new Intent(this, MyService.class); 
     startService(intent); 
} 

MyService

private MyClass X; 

public MyService(MyClass x) { 
    super("man"); //not so much in the movie... =p 
    X = x; 
} 

@Override 
protected void onHandleIntent(Intent intent) { 
    // somehow X is null here after i set him in the constractor. any idea why? 
} 

birisi benim başlığını düzenleyebiliyorsanız i ... teşekkürler anlamak için ben de yazdım emin ve net değilim!

cevap

1

Bu kurucu asla kullanılmayacaktır. IntentService, başka bir yerde, hizmetinizin örneğini oluşturmak için Android'in kullandığı yapıcı olacak MyService yapıcı — sıfır argümanına sahiptir.

+0

Hızlı cevap için teşekkür ederiz. Peki, MyClass'ı IntentService'e nasıl aktarabilirim? – LamaTo

+0

Kendime cevap vereceğim, muhtemelen Intent.putExtra() kullanacağım, muhtemelen işe yarayacaktır. – LamaTo

+1

@LamaTo: Bir dersin fazladan gidebileceğinden emin değilim. İşin ne olduğunu belirtmek için değil, işin ne olduğunu göstermek için bir bayrak olarak ekstra kullanın. Sınıf, "IntentService" in bir uygulama detayıdır. – CommonsWare