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

  • adrianisen

    adrianisen

    25 Kasım 2009
  • apenney888

    apenney888

    27 EKİM 2010
  • Lena Danya

    Lena Danya

    11 NİSAN 2010