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

  • Liam Underwood

    Liam Underwo

    19 Mayıs 2009
  • PoreoticsHD

    PoreoticsHD

    22 NİSAN 2010
  • William Hyde

    William Hyde

    23 HAZİRAN 2008