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

  • MultiPlayStationMan

    MultiPlaySta

    17 Aralık 2009
  • ShoSho

    ShoSho

    20 Ocak 2010
  • The Dubstep FX

    The Dubstep

    5 Mart 2011