SORU
6 Mayıs 2010, PERŞEMBE


Android açılışta bir servisi başlatmak için çalışıyor

Cihazınız android yüklediğinde bir servisi başlatmak için çalışıyorum, ama bunu hemen yapamam. Bağlantılar çevrimiçi bir dizi baktım ama kodu hiç biri işe yaramadı. Bir şey unutuyor muyum?

AndroidManifest.xml

<receiver
    android:name=".StartServiceAtBootReceiver"
    android:enabled="true"
    android:exported="false"
    android:label="StartServiceAtBootReceiver" >
    <intent-filter>
        <action android:name="android.intent.action._BOOT_COMPLETED" />
    </intent-filter>
</receiver>

<service
    android:name="com.test.RunService"
    android:enabled="true" />

BroadcastReceiver

public void onReceive(Context context, Intent intent) {
    if ("android.intent.action.BOOT_COMPLETED".equals(intent.getAction())) {
        Intent serviceLauncher = new Intent(context, RunService.class);
        context.startService(serviceLauncher);
        Log.v("TEST", "Service loaded at start");
    }
}

Teşekkürler

CEVAP
25 Mart 2011, Cuma


Diğer cevaplar iyi görünüyor, ama her şey tam bir cevap arasına alıp düşündüm.

Androidmanifest.xml dosyanızda şunlar gerekir:

1) <apaçık> öğesi:

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />


2) <uygulama> öğesi (BroadcastReceiver için tam olarak nitelenmiş [veya] göreceli bir sınıf adı kullandığınızdan emin olun):

<receiver android:name="com.example.MyBroadcastReceiver">  
    <intent-filter>  
        <action android:name="android.intent.action.BOOT_COMPLETED" />  
    </intent-filter>  
</receiver>

(android ihtiyacın yok:etkin, ihraç, vb., özellikler. Android varsayılan doğru)

MyBroadcastReceiver.java İçinde:

package com.example;

public class MyBroadcastReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        Intent startServiceIntent = new Intent(context, MyService.class);
        context.startService(startServiceIntent);
    }
}



Orijinal soru:

  • &; alıcı> element < oldu lt;uygulama> öğesi olarak belli değil
  • eğer BroadcastReceiver için tam veya göreli doğru sınıf adı belirtildi net değil
  • <niyet-filter> yazım hatası vardı;

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Influencer Plus

    Influencer P

    2 Ocak 2013
  • SomeOne Pro

    SomeOne Pro

    25 EKİM 2013
  • williamfitzsimmons

    williamfitzs

    14 Mart 2008