Şimdi bir yayın alıcısı (MyStartupIntentReceiver) aracılığıyla bir hizmet çağıran bir uygulama var. servisini çağırmak için yayın alıcısı içinde kodudur:Hizmet Amacı açık olmalıdır: Intent
public void onReceive(Context context, Intent intent) {
Intent serviceIntent = new Intent();
serviceIntent.setAction("com.duk3r.eortologio2.MyService");
context.startService(serviceIntent);
}
sorun Android 5.0 Lollipop içinde aşağıdaki hatayı alıyorum olmasıdır (Android'in önceki sürümlerinde, herşey yolunda çalışır):
Unable to start receiver com.duk3r.eortologio2.MyStartupIntentReceiver: java.lang.IllegalArgumentException: Service Intent must be explicit: Intent { act=com.duk3r.eortologio2.MyService }
Hizmetin açık olarak bildirilmesi ve normal şekilde başlatılması için neyi değiştirmek zorundayım? Diğer benzer konulardaki bazı cevapları denedim, ancak mesajdan kurtulmuş olmama rağmen servis başlamazdı.
bu uygulamada bir hizmettir? – tyczj
evet paket com.duk3r.eortologio2 benim app. – duk3r
Başka şirketlerce sağlanan uygulamaların bu bileşenle iletişim kurmasını istediğinizde, bir bileşene yalnızca 'özelliği vardır. Her şey için bir ' '' ye ihtiyacınız olduğunu varsaymak için tuzağa düşmüş görünüyorsunuz - gerçekte, nadiren bir 'ye ihtiyacınız var. Açıkça bir 'Intent', 'Intent' in kendisi için konuşacak bileşeni, genellikle Java 'Class' nesnesini ikinci parametre olarak alan yapıcıyı kullanarak belirlediğiniz zamandır. Implicit 'Intent's ve' 'lerden ziyade, uygulamanızın yerel bileşenleri için kullanmanız gerekenler. –
CommonsWare